Class documentation of Concepts

Loading...
Searching...
No Matches

#include <quad.hh>

Inheritance diagram for hp2D::BaseQuad< F >:
hp2D::Element< F > hp2D::IntegrableQuad concepts::ElementWithCell< F > concepts::IntegrationCell concepts::Element< F > concepts::OutputOperator hp2D::Quad< Real > hp2D::Quad< H > hp2D::Quad< F > hp2Dedge::Quad< F > hp3D::NeumannTraceElement3d< F >

Public Types

typedef F type
 
enum  intFormType { ZERO , ONE , TWO , THREE }
 

Public Member Functions

 BaseQuad (concepts::QuadNd &cell, const ushort *p, concepts::TColumn< F > *T0, concepts::TColumn< F > *T1)
 
virtual const concepts::Quadsupport () const
 
virtual concepts::Real3d vertex (uint i) const
 
virtual const concepts::QuadNdcell () const
 Returns the cell on which the element is built.
 
virtual const concepts::ElementGraphics< F > * graphics () const =0
 Returns element graphics class.
 
virtual const concepts::TMatrix< F > & T () const
 Returns the T matrix of the element.
 
void appendT (concepts::TColumn< F > *T)
 Appends the T columns to the T matrix.
 
Real3d elemMap (const Real coord_local) const
 
Real3d elemMap (const Real2d &coord_local) const
 
Real3d elemMap (const Real3d &coord_local) const
 
uint & tag ()
 Returns the tag.
 
concepts::Real2d chi (const Real x, const Real y) const
 
concepts::MapReal2d jacobian (const Real x, const Real y) const
 Computes the Jacobian.
 
concepts::MapReal2d jacobianInverse (const Real x, const Real y) const
 Computes the inverse of the Jacobian.
 
concepts::MapReal2d inverseLaplace (const Real x, const Real y) const
 
Real gramDeterminantRoot (const Real x, const Real y) const
 
void setStrategy (const concepts::Quad2dSubdivision *strategy=0)
 
const concepts::Quad2dSubdivisiongetStrategy () const
 
virtual bool quadraturePoint (uint i, intPoint &p, intFormType form=ZERO, bool localCoord=false) const
 
const concepts::QuadratureRule2d *const intRule () const
 

Static Public Member Functions

static std::unique_ptr< concepts::QuadRuleFactoryTensor2d > & factory ()
 
static concepts::QuadRuleFactoryTensor2dfactory_rp ()
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 

Protected Attributes

concepts::TMatrix< F > T_
 T matrix of the element.
 
std::unique_ptr< concepts::QuadratureRule2dintRule_
 The integration rules.
 
concepts::QuadNdcell_
 The cell.
 

Static Protected Attributes

static std::unique_ptr< concepts::QuadRuleFactoryTensor2dfactory_
 

Detailed Description

template<class F = Real>
class hp2D::BaseQuad< F >

A base of a 2D quad FEM element for different basis functions

Definition at line 181 of file quad.hh.

Member Typedef Documentation

◆ type

template<typename F >
typedef F concepts::ElementWithCell< F >::type
inherited

Definition at line 81 of file element.hh.

Member Enumeration Documentation

◆ intFormType

Integration form, which determines terms coming from integration over reference element

Definition at line 29 of file integral.hh.

Constructor & Destructor Documentation

◆ BaseQuad()

template<class F = Real>
hp2D::BaseQuad< F >::BaseQuad ( concepts::QuadNd cell,
const ushort *  p,
concepts::TColumn< F > *  T0,
concepts::TColumn< F > *  T1 
)

Constructor

Parameters
cellCell on which the element is defined
pPolynomial degree (might be anisotropic and is only) taking to initialize the quadrature rule
T0Part of the T matrix
T1Part of the T matrix

Member Function Documentation

◆ appendT()

template<class F >
void hp2D::Element< F >::appendT ( concepts::TColumn< F > *  T)
inlineinherited

Appends the T columns to the T matrix.

Definition at line 43 of file element.hh.

◆ cell()

template<class F = Real>
virtual const concepts::QuadNd & hp2D::BaseQuad< F >::cell ( ) const
inlinevirtual

Returns the cell on which the element is built.

Implements hp2D::Element< F >.

Definition at line 196 of file quad.hh.

◆ chi()

concepts::Real2d hp2D::IntegrableQuad::chi ( const Real  x,
const Real  y 
) const
inlineinherited

Computes the element map, the map from the reference element to the real geometry of the quad.

The reference element is the unit quad.

Definition at line 40 of file quad.hh.

◆ elemMap() [1/3]

template<typename F >
Real3d concepts::ElementWithCell< F >::elemMap ( const Real  coord_local) const
inlineinherited

Definition at line 86 of file element.hh.

◆ elemMap() [2/3]

template<typename F >
Real3d concepts::ElementWithCell< F >::elemMap ( const Real2d coord_local) const
inlineinherited

Definition at line 90 of file element.hh.

◆ elemMap() [3/3]

template<typename F >
Real3d concepts::ElementWithCell< F >::elemMap ( const Real3d coord_local) const
inlineinherited

Definition at line 94 of file element.hh.

◆ factory()

static std::unique_ptr< concepts::QuadRuleFactoryTensor2d > & hp2D::IntegrableQuad::factory ( )
inlinestaticinherited

Access to the quadrature rule, which is valid for all elements of this type (hp2D::IntegrableQuad).

Change of the quadrature rule is put into practice for newly created elements and for already created elements by precomputing the integration points and shape functions on them.

Examples
BGT_0.cc, RobinBCs.cc, elasticity2D_tutorial.cc, exactDtN.cc, howToGetStarted.cc, inhomDirichletBCs.cc, inhomDirichletBCsLagrange.cc, inhomNeumannBCs.cc, and parallelizationTutorial.cc.

Definition at line 144 of file quad.hh.

◆ factory_rp()

static concepts::QuadRuleFactoryTensor2d * hp2D::IntegrableQuad::factory_rp ( )
inlinestaticinherited

Access to the quadrature rule ( as factory() ) through a raw pointer.

Definition at line 148 of file quad.hh.

◆ getStrategy()

const concepts::Quad2dSubdivision * hp2D::IntegrableQuad::getStrategy ( ) const
inlineinherited

Returns the subdivision strategy of the underlying cell of this element.

Definition at line 121 of file quad.hh.

◆ gramDeterminantRoot()

Real hp2D::IntegrableQuad::gramDeterminantRoot ( const Real  x,
const Real  y 
) const
inlineinherited

Computes the sqaure root of the Gram determinant multiplied by 0.25 to incorporate the transformation factor for the integration weights.

Definition at line 91 of file quad.hh.

◆ graphics()

template<class F = Real>
virtual const concepts::ElementGraphics< F > * hp2D::BaseQuad< F >::graphics ( ) const
pure virtual

Returns element graphics class.

Reimplemented from concepts::Element< F >.

Implemented in hp2D::Quad< F >, hp2D::Quad< H >, hp2D::Quad< Real >, and hp2Dedge::Quad< F >.

◆ info()

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

Returns information in an output stream.

Reimplemented from hp2D::Element< F >.

Reimplemented in hp2D::Quad< F >, hp2D::Quad< H >, hp2D::Quad< Real >, hp2Dedge::Quad< F >, and hp3D::NeumannTraceElement3d< F >.

◆ intRule()

const concepts::QuadratureRule2d *const hp2D::IntegrableQuad::intRule ( ) const
inlineinherited

Definition at line 135 of file quad.hh.

◆ inverseLaplace()

concepts::MapReal2d hp2D::IntegrableQuad::inverseLaplace ( const Real  x,
const Real  y 
) const
inlineinherited

Definition at line 66 of file quad.hh.

◆ jacobian()

concepts::MapReal2d hp2D::IntegrableQuad::jacobian ( const Real  x,
const Real  y 
) const
inlineinherited

Computes the Jacobian.

Definition at line 45 of file quad.hh.

◆ jacobianInverse()

concepts::MapReal2d hp2D::IntegrableQuad::jacobianInverse ( const Real  x,
const Real  y 
) const
inlineinherited

Computes the inverse of the Jacobian.

Definition at line 59 of file quad.hh.

◆ quadraturePoint()

virtual bool hp2D::IntegrableQuad::quadraturePoint ( uint  i,
intPoint p,
intFormType  form = ZERO,
bool  localCoord = false 
) const
virtualinherited

Delivers a quadrature point.

Quadrature point consists of coordinates (for evaluation of formulas) and intermediate data, consisting of the weight and term coming from mapping.

Returns false, if the number of quadrature points is overstepped.

Parameters
inumber of quadrature point
intPointdata given back
formIntegration form
localCoordIf true, local coordinates are returned. Else physical coordinates.

Implements concepts::IntegrationCell.

◆ setStrategy()

void hp2D::IntegrableQuad::setStrategy ( const concepts::Quad2dSubdivision strategy = 0)
inlineinherited

Sets the subdivision strategy of the underlying cell of this element. It calls Quad2d::setStrategy.

Parameters
strategyPointer to an instance of a subdivision strategy.
Exceptions
StrategyChangeif the change is not allowed (the change is not allowed if there are children present)

Definition at line 109 of file quad.hh.

◆ support()

template<class F = Real>
virtual const concepts::Quad & hp2D::BaseQuad< F >::support ( ) const
inlinevirtual

Returns the topological support of the element. Possible supports for an element are quadrilaterals and triangles.

Implements hp2D::Element< F >.

Definition at line 194 of file quad.hh.

◆ T()

template<class F >
virtual const concepts::TMatrix< F > & hp2D::Element< F >::T ( ) const
inlinevirtualinherited

Returns the T matrix of the element.

Implements concepts::ElementWithCell< F >.

Reimplemented in hp3D::NeumannTraceElement3d< F >.

Definition at line 40 of file element.hh.

◆ tag()

template<class F >
uint & concepts::Element< F >::tag ( )
inlineinherited

Returns the tag.

Definition at line 66 of file element.hh.

◆ vertex()

template<class F = Real>
virtual concepts::Real3d hp2D::BaseQuad< F >::vertex ( uint  i) const
inlinevirtual

Returns the coordinates of the ith vertex of this element.

Parameters
iIndex of the vertex

Implements hp2D::Element< F >.

Definition at line 195 of file quad.hh.

Member Data Documentation

◆ cell_

concepts::QuadNd& hp2D::IntegrableQuad::cell_
protectedinherited

The cell.

Definition at line 161 of file quad.hh.

◆ factory_

std::unique_ptr<concepts::QuadRuleFactoryTensor2d> hp2D::IntegrableQuad::factory_
staticprotectedinherited

Definition at line 165 of file quad.hh.

◆ intRule_

std::unique_ptr<concepts::QuadratureRule2d> hp2D::IntegrableQuad::intRule_
protectedinherited

The integration rules.

Definition at line 158 of file quad.hh.

◆ T_

template<class F >
concepts::TMatrix<F> hp2D::Element< F >::T_
protectedinherited

T matrix of the element.

Definition at line 57 of file element.hh.


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