hp2D::ElementFunction< dim, F, Q > Class Template Referenceabstract

Base class for element functions for hp elements in 2D. More...

#include <functionBase.hh>

Inheritance diagram for hp2D::ElementFunction< dim, F, Q >:
concepts::ElementFunction< Real, Q::type >

Public Types

typedef concepts::Element< typename Q::type > Element
 

Public Member Functions

virtual ElementFunction< Real, Q::type > * clone () const=0
 
virtual uint n () const
 Number of components. More...
 
virtual uint n () const=0
 Number of components. More...
 
virtual void operator() (const Element &elm, const concepts::Array< F > &coeff, concepts::Array< F > &val, const concepts::Real3d &p, const Real t=0.0) const
 
virtual void operator() (const Element &elm, const concepts::Array< F > &coeff, concepts::Array< F > &val, const Real p, const Real t=0.0) const
 
virtual void operator() (const Element &elm, const concepts::Array< F > &coeff, concepts::Array< F > &val, const Real2d &p, const Real t=0.0) const
 
virtual void operator() (const Element &elm, const concepts::Array< F > &coeff, concepts::Array< F > &val, const uint *i) const
 
virtual void operator() (const Element &elm, const uint *j, concepts::Array< F > &val, const uint *i) const
 
virtual void operator() (const Element< Q::type > &elm, const Array< Real > &coeff, Array< Real > &val, const Real p, const Real t=0.0) const=0
 Evaluates the function value in an arbitrary point p of physical space. More...
 
virtual void operator() (const Element< Q::type > &elm, const Array< Real > &coeff, Array< Real > &val, const Real2d &p, const Real t=0.0) const=0
 
virtual void operator() (const Element< Q::type > &elm, const Array< Real > &coeff, Array< Real > &val, const Real3d &p, const Real t=0.0) const=0
 
virtual void operator() (const Element< Q::type > &elm, const Array< Real > &coeff, Array< Real > &val, const uint *i) const=0
 Evaluates the function on precalculated quadrature points. More...
 
virtual void operator() (const Element< Q::type > &elm, const uint *j, Array< Real > &val, const uint *i) const=0
 Evaluates the given function on a specific shape function j (on precalculated quadrature points). More...
 

Protected Member Functions

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

Private Member Functions

virtual void compute_ (const Q &elm, const concepts::Array< F > &coeff, concepts::Array< F > &val, const Real2d &p, const Real t=0.0) const =0
 
virtual void compute_ (const Q &elm, const concepts::Array< F > &coeff, concepts::Array< F > &val, const uint i[2]) const =0
 
virtual void compute_ (const Q &elm, const uint j[3], concepts::Array< F > &val, const uint i[2]) const =0
 

Detailed Description

template<uint dim, typename F = Real, typename Q = Quad<Real>>
class hp2D::ElementFunction< dim, F, Q >

Base class for element functions for hp elements in 2D.

The derivated classes have only to implement the three compute_ methods for element of type Q, i.e. quads with different shape functions. The class can be extended to new types, like triangles, with new template parameter and new compute_ methods.

The case of scalar function with template parameter dim = 1 is declared below.

Author
Kersten Schmidt, 2005

Definition at line 36 of file functionBase.hh.

Member Typedef Documentation

◆ Element

template<uint dim, typename F = Real, typename Q = Quad<Real>>
typedef concepts::Element<typename Q::type> hp2D::ElementFunction< dim, F, Q >::Element

Definition at line 40 of file functionBase.hh.

Member Function Documentation

◆ clone()

virtual ElementFunction<Real ,Q::type >* concepts::ElementFunction< Real , Q::type >::clone
pure virtualinherited

◆ compute_() [1/3]

template<uint dim, typename F = Real, typename Q = Quad<Real>>
virtual void hp2D::ElementFunction< dim, F, Q >::compute_ ( const Q &  elm,
const concepts::Array< F > &  coeff,
concepts::Array< F > &  val,
const Real2d &  p,
const Real  t = 0.0 
) const
privatepure virtual

◆ compute_() [2/3]

template<uint dim, typename F = Real, typename Q = Quad<Real>>
virtual void hp2D::ElementFunction< dim, F, Q >::compute_ ( const Q &  elm,
const concepts::Array< F > &  coeff,
concepts::Array< F > &  val,
const uint  i[2] 
) const
privatepure virtual

◆ compute_() [3/3]

template<uint dim, typename F = Real, typename Q = Quad<Real>>
virtual void hp2D::ElementFunction< dim, F, Q >::compute_ ( const Q &  elm,
const uint  j[3],
concepts::Array< F > &  val,
const uint  i[2] 
) const
privatepure virtual

◆ info()

virtual std::ostream& concepts::ElementFunction< Real , Q::type >::info ( std::ostream &  os) const
inlineprotectedvirtualinherited

◆ n() [1/2]

template<uint dim, typename F = Real, typename Q = Quad<Real>>
virtual uint hp2D::ElementFunction< dim, F, Q >::n ( ) const
inlinevirtual

Number of components.

Definition at line 43 of file functionBase.hh.

◆ n() [2/2]

◆ operator()() [1/10]

template<uint dim, typename F , typename Q >
void hp2D::ElementFunction< dim, F, Q >::operator() ( const Element elm,
const concepts::Array< F > &  coeff,
concepts::Array< F > &  val,
const concepts::Real3d p,
const Real  t = 0.0 
) const
virtual

Definition at line 125 of file functionBase.hh.

◆ operator()() [2/10]

template<uint dim, typename F , typename Q >
void hp2D::ElementFunction< dim, F, Q >::operator() ( const Element elm,
const concepts::Array< F > &  coeff,
concepts::Array< F > &  val,
const Real  p,
const Real  t = 0.0 
) const
virtual

Definition at line 101 of file functionBase.hh.

◆ operator()() [3/10]

template<uint dim, typename F , typename Q >
void hp2D::ElementFunction< dim, F, Q >::operator() ( const Element elm,
const concepts::Array< F > &  coeff,
concepts::Array< F > &  val,
const Real2d &  p,
const Real  t = 0.0 
) const
virtual

Definition at line 114 of file functionBase.hh.

◆ operator()() [4/10]

template<uint dim, typename F , typename Q >
void hp2D::ElementFunction< dim, F, Q >::operator() ( const Element elm,
const concepts::Array< F > &  coeff,
concepts::Array< F > &  val,
const uint *  i 
) const
virtual

Definition at line 79 of file functionBase.hh.

◆ operator()() [5/10]

template<uint dim, typename F , typename Q >
void hp2D::ElementFunction< dim, F, Q >::operator() ( const Element elm,
const uint *  j,
concepts::Array< F > &  val,
const uint *  i 
) const
virtual

Definition at line 90 of file functionBase.hh.

◆ operator()() [6/10]

virtual void concepts::ElementFunction< Real , Q::type >::operator() ( const Element< Q::type > &  elm,
const Array< Real > &  coeff,
Array< Real > &  val,
const Real  p,
const Real  t = 0.0 
) const
pure virtualinherited

Evaluates the function value in an arbitrary point p of physical space.

Parameters
elmElement
coeffCoefficients of local shape functions
valFunction value
pPoint in space in local element coordinates
tPoint in time

◆ operator()() [7/10]

virtual void concepts::ElementFunction< Real , Q::type >::operator() ( const Element< Q::type > &  elm,
const Array< Real > &  coeff,
Array< Real > &  val,
const Real2d p,
const Real  t = 0.0 
) const
pure virtualinherited

◆ operator()() [8/10]

virtual void concepts::ElementFunction< Real , Q::type >::operator() ( const Element< Q::type > &  elm,
const Array< Real > &  coeff,
Array< Real > &  val,
const Real3d p,
const Real  t = 0.0 
) const
pure virtualinherited

◆ operator()() [9/10]

virtual void concepts::ElementFunction< Real , Q::type >::operator() ( const Element< Q::type > &  elm,
const Array< Real > &  coeff,
Array< Real > &  val,
const uint *  i 
) const
pure virtualinherited

Evaluates the function on precalculated quadrature points.

Parameters
elmElement
coeffCoefficients of local shape functions
valFunction value
imulti-index of the quadrature point

◆ operator()() [10/10]

virtual void concepts::ElementFunction< Real , Q::type >::operator() ( const Element< Q::type > &  elm,
const uint *  j,
Array< Real > &  val,
const uint *  i 
) const
pure virtualinherited

Evaluates the given function on a specific shape function j (on precalculated quadrature points).

Parameters
elmElement
jmulti-index of a shapefunction
valFunction value
imulti-index of the quadrature point

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