A 2D FEM element: an infinite quad with basis based on Laguerre functions. More...

#include <quad.hh>

Inheritance diagram for hp2D::InfiniteLaguerreQuad:
hp2D::InfiniteQuad hp2D::Element< Real > concepts::ElementWithCell< Real >

Public Types

typedef Real type
 

Public Member Functions

void appendT (concepts::TColumn< Real > *T)
 Appends the T columns to the T matrix. More...
 
const concepts::InfiniteQuad2dcell () const
 
virtual const concepts::Cell2cell () const=0
 Returns the cell on which the element is built. More...
 
Real3d elemMap (const Real coord_local) const
 
Real3d elemMap (const Real2d &coord_local) const
 
Real3d elemMap (const Real3d &coord_local) const
 
virtual const concepts::ElementGraphics< Real > * graphics () const
 
 InfiniteLaguerreQuad (concepts::InfiniteQuad2d &cell, const ushort *p, concepts::TColumn< Real > *T0, concepts::TColumn< Real > *T1)
 Constructor. More...
 
const concepts::QuadratureRule1dintegrationX () const
 Returns the integration rule in x direction. More...
 
const concepts::QuadratureRule1dintegrationY () const
 Returns the integration rule in y direction. More...
 
const ushort * p () const
 Returns the polynomial degree. More...
 
void recomputeShapefunctions ()
 
const concepts::Karniadakis< 1, 1 > * shpfctDX () const
 Returns the derivatives of the shape functions in x direction. More...
 
const concepts::LaguerreBasis< 1 > * shpfctDY () const
 Returns the derivatives of the shape functions in x direction. More...
 
const concepts::Karniadakis< 1, 0 > * shpfctX () const
 Returns the shape functions in x direction. More...
 
const concepts::LaguerreBasis< 0 > * shpfctY () const
 Returns the shape functions in x direction. More...
 
const concepts::Connector2support () const
 
virtual const concepts::Connector2support () const=0
 Returns the topological support of the element. More...
 
virtual const concepts::TMatrix< Real > & T () const
 Returns the T matrix of the element. More...
 
concepts::Real3d vertex (uint i) const
 Returns the coordinates of the ith vertex of this element. More...
 
virtual ~InfiniteLaguerreQuad ()
 

Static Public Member Functions

static Real & borderY ()
 Largest value in local y coordinates. Default is 1.0. More...
 
static std::string integrationRule ()
 Returns information on the settings of the quadrature rule. More...
 
static void resetIntegrationRule ()
 Set the standard type of integration. More...
 
static void setIntegrationRuleX (enum concepts::intRule rule, bool constant, uint points)
 Sets the type of integration rule in x direction to use. More...
 
static void setIntegrationRuleY (bool constant, uint points, const Real border)
 Sets the type of integration rule in y direction to use. More...
 

Protected Member Functions

void computeIntegrationRule_ (const uint nq[2])
 
void computeIntegrationRuleFromP_ (const ushort *p)
 
void computeShapefunctionsX_ ()
 gets the shapefunctions in x direction More...
 
virtual std::ostream & info (std::ostream &os) const
 

Protected Attributes

std::unique_ptr< concepts::QuadratureRule1dintX_
 The integration rules. More...
 
std::unique_ptr< concepts::QuadratureRule1dintY_
 
ushort p_ [2]
 Polynomial degree. More...
 
concepts::TMatrix< Real > T_
 T matrix of the element. More...
 

Private Member Functions

void computeShapefunctionsY_ ()
 gets the shapefunctions in x direction More...
 

Private Attributes

concepts::InfiniteQuad2dcell_
 The cell. More...
 
std::unique_ptr< concepts::Karniadakis< 1, 1 > > shpfctDX_
 The derivatives of the shape functions. More...
 
std::unique_ptr< concepts::LaguerreBasis< 1 > > shpfctDY_
 The derivatives of the shape functions in local y-direction. More...
 
std::unique_ptr< concepts::Karniadakis< 1, 0 > > shpfctX_
 The shape functions. More...
 
std::unique_ptr< concepts::LaguerreBasis< 0 > > shpfctY_
 The shape functions in local y-direction. More...
 

Static Private Attributes

static uint addNumberOfPointsX_
 Number of integration points to add to approximation order when varying number of integration points is requested. More...
 
static uint addNumberOfPointsY_
 
static Real borderY_
 Largest value in local y coordinates. Default is 1.0. More...
 
static uint constNumerOfPointsX_
 Number of integration points to use when constant number is requested. More...
 
static uint constNumerOfPointsY_
 
static std::unique_ptr< concepts::ElementGraphics< Real > > graphics_
 Appropiate element graphics object. More...
 
static enum concepts::intRule integrationTypeX_
 Default behaviour: integration rule Gauss Jacobi (highest order). More...
 
static enum concepts::intRule integrationTypeY_
 Default behaviour: uniform points in [0, border] (Trapezoidal rule). More...
 
static bool useConstantNumberOfPointsX_
 Use constant number of integration points (true) or not (false). More...
 
static bool useConstantNumberOfPointsY_
 

Detailed Description

A 2D FEM element: an infinite quad with basis based on Laguerre functions.

The reference shape functions are products of the polynomials of Karniadakis and Sherwin in local x-direction and a basis based on Laguerre functions in local y-direction. The index of the shape functions rises first over the polynomials in local x-direction.

Author
Kersten Schmidt, 2009.

Definition at line 452 of file quad.hh.

Member Typedef Documentation

◆ type

typedef Real concepts::ElementWithCell< Real >::type
inherited

Definition at line 81 of file element.hh.

Constructor & Destructor Documentation

◆ InfiniteLaguerreQuad()

hp2D::InfiniteLaguerreQuad::InfiniteLaguerreQuad ( concepts::InfiniteQuad2d cell,
const ushort *  p,
concepts::TColumn< Real > *  T0,
concepts::TColumn< Real > *  T1 
)

Constructor.

Parameters
cellCell on which the element is defined
pPolynomial degree (might be anisotropic)
T0Part of the T matrix
T1Part of the T matrix

◆ ~InfiniteLaguerreQuad()

virtual hp2D::InfiniteLaguerreQuad::~InfiniteLaguerreQuad ( )
virtual

Member Function Documentation

◆ appendT()

void hp2D::Element< Real >::appendT ( concepts::TColumn< Real > *  T)
inlineinherited

Appends the T columns to the T matrix.

Definition at line 43 of file element.hh.

◆ borderY()

static Real& hp2D::InfiniteQuad::borderY ( )
inlinestaticinherited

Largest value in local y coordinates. Default is 1.0.

Definition at line 388 of file quad.hh.

◆ cell() [1/2]

const concepts::InfiniteQuad2d& hp2D::InfiniteQuad::cell ( ) const
inlineinherited

Definition at line 332 of file quad.hh.

◆ cell() [2/2]

virtual const concepts::Cell2& hp2D::Element< Real >::cell
pure virtualinherited

Returns the cell on which the element is built.

Implements concepts::ElementWithCell< Real >.

◆ computeIntegrationRule_()

void hp2D::InfiniteQuad::computeIntegrationRule_ ( const uint  nq[2])
protectedinherited

◆ computeIntegrationRuleFromP_()

void hp2D::InfiniteQuad::computeIntegrationRuleFromP_ ( const ushort *  p)
protectedinherited

◆ computeShapefunctionsX_()

void hp2D::InfiniteQuad::computeShapefunctionsX_ ( )
protectedinherited

gets the shapefunctions in x direction

◆ computeShapefunctionsY_()

void hp2D::InfiniteLaguerreQuad::computeShapefunctionsY_ ( )
private

gets the shapefunctions in x direction

◆ elemMap() [1/3]

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

Definition at line 86 of file element.hh.

◆ elemMap() [2/3]

Real3d concepts::ElementWithCell< Real >::elemMap ( const Real2d coord_local) const
inlineinherited

Definition at line 90 of file element.hh.

◆ elemMap() [3/3]

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

Definition at line 94 of file element.hh.

◆ graphics()

virtual const concepts::ElementGraphics<Real>* hp2D::InfiniteLaguerreQuad::graphics ( ) const
virtual

Implements hp2D::InfiniteQuad.

◆ info()

virtual std::ostream& hp2D::InfiniteLaguerreQuad::info ( std::ostream &  os) const
protectedvirtual

Reimplemented from hp2D::InfiniteQuad.

◆ integrationRule()

static std::string hp2D::InfiniteQuad::integrationRule ( )
staticinherited

Returns information on the settings of the quadrature rule.

◆ integrationX()

const concepts::QuadratureRule1d* hp2D::InfiniteQuad::integrationX ( ) const
inlineinherited

Returns the integration rule in x direction.

Definition at line 339 of file quad.hh.

◆ integrationY()

const concepts::QuadratureRule1d* hp2D::InfiniteQuad::integrationY ( ) const
inlineinherited

Returns the integration rule in y direction.

Definition at line 343 of file quad.hh.

◆ p()

const ushort* hp2D::InfiniteQuad::p ( ) const
inlineinherited

Returns the polynomial degree.

The returned array has 2 elements.

Definition at line 336 of file quad.hh.

◆ recomputeShapefunctions()

void hp2D::InfiniteLaguerreQuad::recomputeShapefunctions ( )

◆ resetIntegrationRule()

static void hp2D::InfiniteQuad::resetIntegrationRule ( )
staticinherited

Set the standard type of integration.

◆ setIntegrationRuleX()

static void hp2D::InfiniteQuad::setIntegrationRuleX ( enum concepts::intRule  rule,
bool  constant,
uint  points 
)
staticinherited

Sets the type of integration rule in x direction to use.

Parameters
ruleDetermines the integration rule
constantUse constant number of points
pointsNumber of points to use (for constant = true) or points to add to approximation order (for constant = false)

◆ setIntegrationRuleY()

static void hp2D::InfiniteQuad::setIntegrationRuleY ( bool  constant,
uint  points,
const Real  border 
)
staticinherited

Sets the type of integration rule in y direction to use.

Parameters
constantUse constant number of points
pointsNumber of points to use (for constant = true) or points to add to approximation order (for constant = false)
borderLargest value in local y coordinates.

◆ shpfctDX()

const concepts::Karniadakis<1,1>* hp2D::InfiniteQuad::shpfctDX ( ) const
inlineinherited

Returns the derivatives of the shape functions in x direction.

Definition at line 376 of file quad.hh.

◆ shpfctDY()

const concepts::LaguerreBasis<1>* hp2D::InfiniteLaguerreQuad::shpfctDY ( ) const
inlinevirtual

Returns the derivatives of the shape functions in x direction.

Implements hp2D::InfiniteQuad.

Definition at line 470 of file quad.hh.

◆ shpfctX()

const concepts::Karniadakis<1,0>* hp2D::InfiniteQuad::shpfctX ( ) const
inlineinherited

Returns the shape functions in x direction.

Definition at line 371 of file quad.hh.

◆ shpfctY()

const concepts::LaguerreBasis<0>* hp2D::InfiniteLaguerreQuad::shpfctY ( ) const
inlinevirtual

Returns the shape functions in x direction.

Implements hp2D::InfiniteQuad.

Definition at line 466 of file quad.hh.

◆ support() [1/2]

const concepts::Connector2& hp2D::InfiniteQuad::support ( ) const
inlineinherited

Definition at line 330 of file quad.hh.

◆ support() [2/2]

virtual const concepts::Connector2& hp2D::Element< Real >::support
pure virtualinherited

Returns the topological support of the element.

Possible supports for an element are quadrilaterals and triangles.

◆ T()

virtual const concepts::TMatrix<Real >& hp2D::Element< Real >::T
inlinevirtualinherited

Returns the T matrix of the element.

Implements concepts::ElementWithCell< Real >.

Definition at line 40 of file element.hh.

◆ vertex()

concepts::Real3d hp2D::InfiniteQuad::vertex ( uint  i) const
inlinevirtualinherited

Returns the coordinates of the ith vertex of this element.

Parameters
iIndex of the vertex

Implements hp2D::Element< Real >.

Definition at line 331 of file quad.hh.

Member Data Documentation

◆ addNumberOfPointsX_

uint hp2D::InfiniteQuad::addNumberOfPointsX_
staticprivateinherited

Number of integration points to add to approximation order when varying number of integration points is requested.

Default is 2.

Definition at line 425 of file quad.hh.

◆ addNumberOfPointsY_

uint hp2D::InfiniteQuad::addNumberOfPointsY_
staticprivateinherited

Definition at line 425 of file quad.hh.

◆ borderY_

Real hp2D::InfiniteQuad::borderY_
staticprivateinherited

Largest value in local y coordinates. Default is 1.0.

Definition at line 431 of file quad.hh.

◆ cell_

concepts::InfiniteQuad2d& hp2D::InfiniteQuad::cell_
privateinherited

The cell.

Definition at line 407 of file quad.hh.

◆ constNumerOfPointsX_

uint hp2D::InfiniteQuad::constNumerOfPointsX_
staticprivateinherited

Number of integration points to use when constant number is requested.

Default values are 10 and 5.

Definition at line 421 of file quad.hh.

◆ constNumerOfPointsY_

uint hp2D::InfiniteQuad::constNumerOfPointsY_
staticprivateinherited

Definition at line 421 of file quad.hh.

◆ graphics_

std::unique_ptr<concepts::ElementGraphics<Real> > hp2D::InfiniteLaguerreQuad::graphics_
staticprivate

Appropiate element graphics object.

Definition at line 480 of file quad.hh.

◆ integrationTypeX_

enum concepts::intRule hp2D::InfiniteQuad::integrationTypeX_
staticprivateinherited

Default behaviour: integration rule Gauss Jacobi (highest order).

The default value is 4 (Gauss Jacobi). Other possible values are 0 (Gauss Lobatto) for better graphics (connected elements). Use setIntegrationRule() to change it.

Definition at line 407 of file quad.hh.

◆ integrationTypeY_

enum concepts::intRule hp2D::InfiniteQuad::integrationTypeY_
staticprivateinherited

Default behaviour: uniform points in [0, border] (Trapezoidal rule).

Definition at line 407 of file quad.hh.

◆ intX_

std::unique_ptr<concepts::QuadratureRule1d> hp2D::InfiniteQuad::intX_
protectedinherited

The integration rules.

Definition at line 403 of file quad.hh.

◆ intY_

std::unique_ptr<concepts::QuadratureRule1d> hp2D::InfiniteQuad::intY_
protectedinherited

Definition at line 404 of file quad.hh.

◆ p_

ushort hp2D::InfiniteQuad::p_[2]
protectedinherited

Polynomial degree.

Definition at line 400 of file quad.hh.

◆ shpfctDX_

std::unique_ptr<concepts::Karniadakis<1,1> > hp2D::InfiniteQuad::shpfctDX_
privateinherited

The derivatives of the shape functions.

Definition at line 436 of file quad.hh.

◆ shpfctDY_

std::unique_ptr<concepts::LaguerreBasis<1> > hp2D::InfiniteLaguerreQuad::shpfctDY_
private

The derivatives of the shape functions in local y-direction.

Definition at line 485 of file quad.hh.

◆ shpfctX_

std::unique_ptr<concepts::Karniadakis<1,0> > hp2D::InfiniteQuad::shpfctX_
privateinherited

The shape functions.

Definition at line 434 of file quad.hh.

◆ shpfctY_

std::unique_ptr<concepts::LaguerreBasis<0> > hp2D::InfiniteLaguerreQuad::shpfctY_
private

The shape functions in local y-direction.

Definition at line 483 of file quad.hh.

◆ T_

concepts::TMatrix<Real > hp2D::Element< Real >::T_
protectedinherited

T matrix of the element.

Definition at line 57 of file element.hh.

◆ useConstantNumberOfPointsX_

bool hp2D::InfiniteQuad::useConstantNumberOfPointsX_
staticprivateinherited

Use constant number of integration points (true) or not (false).

Default is false (ie. varying number of points).

Definition at line 429 of file quad.hh.

◆ useConstantNumberOfPointsY_

bool hp2D::InfiniteQuad::useConstantNumberOfPointsY_
staticprivateinherited

Definition at line 429 of file quad.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