The following two types are shape function mixins. More...

#include <element.hh>

Inheritance diagram for hp1D::KarniadakisMixin< F >:
hp1D::BaseElement< F > concepts::ElementWithCell< F > hp1D::IntegrableElm concepts::IntegrationCell

Public Types

typedef F FieldT
 
enum  intFormType { ZERO, ONE, TWO, THREE }
 Integration form, which determines terms coming from integration over reference element. More...
 
typedef F type
 

Public Member Functions

virtual const concepts::EdgeNdcell () const
 Returns the cell on which the element is built. More...
 
const concepts::Real3d chi (const Real x) const
 Computes the element map. 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
 Returns element graphics class. More...
 
const concepts::QuadratureRule1dintegration () const
 Returns the integration rule. More...
 
Real jacobianDeterminant (const Real x) const
 Computes the determinant of the Jacobian. More...
 
 KarniadakisMixin (const concepts::EdgeNd &cell, ushort p)
 
ushort p () const
 
virtual bool quadraturePoint (uint i, intPoint &p, intFormType form=ZERO, bool localCoord=false) const
 Delivers a quadrature point. More...
 
void recomputeShapefunctions () override
 Recompute shape functions, e.g. More...
 
const concepts::Karniadakis< 1, 0 > * shpfct () const override
 Returns the shape functions. More...
 
const concepts::Karniadakis< 1, 1 > * shpfctD () const
 Returns the derivatives of the shape functions. More...
 
const concepts::Karniadakis< 1, 2 > * shpfctDD () const
 Returns the second derivatives of the shape functions. More...
 
virtual const concepts::Edgesupport () const
 
virtual const TMatrixBase< F > & T () const =0
 Returns the T matrix of the element. More...
 
virtual concepts::Real3d vertex (uint i) const
 

Static Public Member Functions

static concepts::QuadRuleFactoryrule ()
 Access to the quadrature rule, which is valid for all elements of this type (hp1D::IntegrableElm). More...
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 

Protected Attributes

const concepts::EdgeNdcell_
 The cell. More...
 
std::unique_ptr< concepts::QuadratureRule1dint_
 The integration rule. More...
 
ushort p_
 T matrix of the element. More...
 

Static Protected Attributes

static std::unique_ptr< LineGraphicsgraphics_
 
static concepts::QuadRuleFactory rule_
 

Private Member Functions

void recomputeSecondDerivativeOfShapefunctions_ ()
 Recompute second derivative of the shape functions, e.g. More...
 

Private Attributes

bool secondDerivativeUsed_
 
std::unique_ptr< concepts::Karniadakis< 1, 0 > > shpfct_
 The shape functions. More...
 
std::unique_ptr< concepts::Karniadakis< 1, 1 > > shpfctD_
 The derivatives of the shape functions. More...
 
std::unique_ptr< concepts::Karniadakis< 1, 2 > > shpfctDD_
 The second derivatives of the shape functions. More...
 

Detailed Description

template<class F>
class hp1D::KarniadakisMixin< F >

The following two types are shape function mixins.

Karniadakis shape functions mixin

Author
Lukas Drescher 2015

Definition at line 137 of file element.hh.

Member Typedef Documentation

◆ FieldT

template<class F >
typedef F hp1D::BaseElement< F >::FieldT
inherited

Definition at line 82 of file element.hh.

◆ 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.

Enumerator
ZERO 
ONE 
TWO 
THREE 

Definition at line 29 of file integral.hh.

Constructor & Destructor Documentation

◆ KarniadakisMixin()

template<class F >
hp1D::KarniadakisMixin< F >::KarniadakisMixin ( const concepts::EdgeNd cell,
ushort  p 
)
inline

Definition at line 139 of file element.hh.

Member Function Documentation

◆ cell()

template<class F >
virtual const concepts::EdgeNd& hp1D::BaseElement< F >::cell ( ) const
inlinevirtualinherited

Returns the cell on which the element is built.

Implements concepts::ElementWithCell< F >.

Definition at line 99 of file element.hh.

◆ chi()

const concepts::Real3d hp1D::IntegrableElm::chi ( const Real  x) const
inlineinherited

Computes the element map.

The reference element is [0,1].

Definition at line 40 of file element.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.

◆ graphics()

template<class F >
virtual const concepts::ElementGraphics<Real>* hp1D::BaseElement< F >::graphics ( ) const
virtualinherited

Returns element graphics class.

◆ info()

template<class F >
virtual std::ostream& hp1D::BaseElement< F >::info ( std::ostream &  os) const
protectedvirtualinherited

Reimplemented in hp2D::NeumannTraceElement< F >.

◆ integration()

const concepts::QuadratureRule1d* hp1D::IntegrableElm::integration ( ) const
inlineinherited

Returns the integration rule.

Definition at line 51 of file element.hh.

◆ jacobianDeterminant()

Real hp1D::IntegrableElm::jacobianDeterminant ( const Real  x) const
inlineinherited

Computes the determinant of the Jacobian.

Definition at line 45 of file element.hh.

◆ p()

template<class F >
ushort hp1D::BaseElement< F >::p ( ) const
inlineinherited

Definition at line 103 of file element.hh.

◆ quadraturePoint()

virtual bool hp1D::IntegrableElm::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.

◆ recomputeSecondDerivativeOfShapefunctions_()

template<class F >
void hp1D::KarniadakisMixin< F >::recomputeSecondDerivativeOfShapefunctions_ ( )
private

Recompute second derivative of the shape functions, e.g.

for other abscissas redefined through IntegrableElm::rule().set(...) If shpfctDD() was ever used, this method also recalculate the second derivatives of the shape functions.

◆ recomputeShapefunctions()

template<class F >
void hp1D::KarniadakisMixin< F >::recomputeShapefunctions ( )
overridevirtual

Recompute shape functions, e.g.

for other abscissas redefined through IntegrableElm::rule().set(...)

Implements hp1D::BaseElement< F >.

◆ rule()

static concepts::QuadRuleFactory& hp1D::IntegrableElm::rule ( )
inlinestaticinherited

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

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.

Definition at line 62 of file element.hh.

◆ shpfct()

template<class F >
const concepts::Karniadakis<1, 0>* hp1D::KarniadakisMixin< F >::shpfct ( ) const
inlineoverridevirtual

Returns the shape functions.

Implements hp1D::BaseElement< F >.

Definition at line 151 of file element.hh.

◆ shpfctD()

template<class F >
const concepts::Karniadakis<1, 1>* hp1D::KarniadakisMixin< F >::shpfctD ( ) const
inline

Returns the derivatives of the shape functions.

Definition at line 155 of file element.hh.

◆ shpfctDD()

template<class F >
const concepts::Karniadakis<1, 2>* hp1D::KarniadakisMixin< F >::shpfctDD ( ) const
inline

Returns the second derivatives of the shape functions.

Definition at line 160 of file element.hh.

◆ support()

template<class F >
virtual const concepts::Edge& hp1D::BaseElement< F >::support ( ) const
inlinevirtualinherited

Definition at line 91 of file element.hh.

◆ T()

template<typename F >
virtual const TMatrixBase<F>& concepts::ElementWithCell< F >::T ( ) const
pure virtualinherited

◆ vertex()

template<class F >
virtual concepts::Real3d hp1D::BaseElement< F >::vertex ( uint  i) const
inlinevirtualinherited

Definition at line 95 of file element.hh.

Member Data Documentation

◆ cell_

const concepts::EdgeNd& hp1D::IntegrableElm::cell_
protectedinherited

The cell.

Definition at line 70 of file element.hh.

◆ graphics_

template<class F >
std::unique_ptr<LineGraphics> hp1D::BaseElement< F >::graphics_
staticprotectedinherited

Definition at line 126 of file element.hh.

◆ int_

std::unique_ptr<concepts::QuadratureRule1d> hp1D::IntegrableElm::int_
protectedinherited

The integration rule.

Definition at line 72 of file element.hh.

◆ p_

template<class F >
ushort hp1D::BaseElement< F >::p_
protectedinherited

T matrix of the element.

Definition at line 124 of file element.hh.

◆ rule_

concepts::QuadRuleFactory hp1D::IntegrableElm::rule_
staticprotectedinherited

Definition at line 74 of file element.hh.

◆ secondDerivativeUsed_

template<class F >
bool hp1D::KarniadakisMixin< F >::secondDerivativeUsed_
mutableprivate

Definition at line 185 of file element.hh.

◆ shpfct_

template<class F >
std::unique_ptr<concepts::Karniadakis<1, 0> > hp1D::KarniadakisMixin< F >::shpfct_
private

The shape functions.

Definition at line 178 of file element.hh.

◆ shpfctD_

template<class F >
std::unique_ptr<concepts::Karniadakis<1, 1> > hp1D::KarniadakisMixin< F >::shpfctD_
private

The derivatives of the shape functions.

Definition at line 180 of file element.hh.

◆ shpfctDD_

template<class F >
std::unique_ptr<concepts::Karniadakis<1, 2> > hp1D::KarniadakisMixin< F >::shpfctDD_
mutableprivate

The second derivatives of the shape functions.

Definition at line 183 of file element.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