DUNE-FEM (unstable)

Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering > Class Template Reference

a Dune::Fem::ShapeFunctionSet of Legendre ansatz polynomials More...

#include <dune/fem/space/shapefunctionset/legendre.hh>

Public Types

typedef FunctionSpace FunctionSpaceType
 function space type More...
 
typedef FunctionSpaceType::DomainType DomainType
 domain type More...
 
typedef FunctionSpaceType::RangeType RangeType
 range type More...
 
typedef FunctionSpaceType::JacobianRangeType JacobianRangeType
 jacobian range type More...
 
typedef FunctionSpaceType::HessianRangeType HessianRangeType
 hessian range type More...
 

Public Member Functions

int order () const noexcept
 return order of shape functions More...
 
std::size_t size () const noexcept
 return number of shape functions More...
 
template<class Point , class Functor >
void evaluateEach (const Point &x, Functor functor) const noexcept
 evalute each shape function More...
 
template<class Point , class Functor >
void jacobianEach (const Point &x, Functor functor) const noexcept
 evalute jacobian of each shape function More...
 
template<class Point , class Functor >
void hessianEach (const Point &x, Functor functor) const noexcept
 evalute hessian of each shape function More...
 
Construction
 LegendreShapeFunctionSet ()=default
 default constructor resulting in uninitialized shape function set
 
 LegendreShapeFunctionSet (int order)
 initialize with polynomial order More...
 
template<class Factory >
 LegendreShapeFunctionSet (const Factory &factory)
 initialize from user-defined factory object More...
 

Detailed Description

template<class FunctionSpace, bool hierarchicalOrdering = false>
class Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >

a Dune::Fem::ShapeFunctionSet of Legendre ansatz polynomials

Note
The range field type used in the evaluation is fixed to double.
This shape function set can only be used with cubic reference elements.
Template Parameters
FunctionSpace(scalar) function space
hierarchicalOrdering(bool) if true shape functions are ordered according to their polynomial order

Member Typedef Documentation

◆ DomainType

template<class FunctionSpace , bool hierarchicalOrdering = false>
typedef FunctionSpaceType::DomainType Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::DomainType

domain type

◆ FunctionSpaceType

template<class FunctionSpace , bool hierarchicalOrdering = false>
typedef FunctionSpace Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::FunctionSpaceType

function space type

◆ HessianRangeType

template<class FunctionSpace , bool hierarchicalOrdering = false>
typedef FunctionSpaceType::HessianRangeType Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::HessianRangeType

hessian range type

◆ JacobianRangeType

template<class FunctionSpace , bool hierarchicalOrdering = false>
typedef FunctionSpaceType::JacobianRangeType Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::JacobianRangeType

jacobian range type

◆ RangeType

template<class FunctionSpace , bool hierarchicalOrdering = false>
typedef FunctionSpaceType::RangeType Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::RangeType

range type

Constructor & Destructor Documentation

◆ LegendreShapeFunctionSet() [1/2]

template<class FunctionSpace , bool hierarchicalOrdering = false>
Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::LegendreShapeFunctionSet ( int  order)
inlineexplicit

initialize with polynomial order

Parameters
[in]order

◆ LegendreShapeFunctionSet() [2/2]

template<class FunctionSpace , bool hierarchicalOrdering = false>
template<class Factory >
Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::LegendreShapeFunctionSet ( const Factory &  factory)
inline

initialize from user-defined factory object

Parameters
[in]factorya factory, see description
Note
The parameter factory must implement the following methods:
struct Factory
{
// return number of shape functions
std::size_t size () const noexcept;
// return maximum order
int order () const noexcept;
// fill range from begin to begin+size() with unique shape functions
void operator() ( InputIterator begin ) const noexcept;
};
int order() const noexcept
return order of shape functions
Definition: legendre.hh:305
std::size_t size() const noexcept
return number of shape functions
Definition: legendre.hh:308

Member Function Documentation

◆ evaluateEach()

template<class FunctionSpace , bool hierarchicalOrdering = false>
template<class Point , class Functor >
void Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::evaluateEach ( const Point &  x,
Functor  functor 
) const
inlinenoexcept

evalute each shape function

Parameters
[in]xcoordinate or quadrature point
[in]functorfunctor call for evaluating each shape function

The functor has to be a copyable object satisfying the following interface:

struct Functor
{
template< class Value >
void operator() ( const int shapeFunction, const Value &value );
};

◆ hessianEach()

template<class FunctionSpace , bool hierarchicalOrdering = false>
template<class Point , class Functor >
void Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::hessianEach ( const Point &  x,
Functor  functor 
) const
inlinenoexcept

evalute hessian of each shape function

Parameters
[in]xcoordinate or quadrature point
[in]functorfunctor call for evaluating the hessian of each shape function

The functor has to be a copyable object satisfying the following interface:

struct Functor
{
template< class Hessian >
void operator() ( const int shapeFunction, const Hessian &hessian );
};

◆ jacobianEach()

template<class FunctionSpace , bool hierarchicalOrdering = false>
template<class Point , class Functor >
void Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::jacobianEach ( const Point &  x,
Functor  functor 
) const
inlinenoexcept

evalute jacobian of each shape function

Parameters
[in]xcoordinate or quadrature point
[in]functorfunctor call for evaluating the jacobian of each shape function

The functor has to be a copyable object satisfying the following interface:

struct Functor
{
template< class Jacobian >
void operator() ( const int shapeFunction, const Jacobian &jacobian );
};

◆ order()

template<class FunctionSpace , bool hierarchicalOrdering = false>
int Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::order ( ) const
inlinenoexcept

return order of shape functions

◆ size()

template<class FunctionSpace , bool hierarchicalOrdering = false>
std::size_t Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::size ( ) const
inlinenoexcept

return number of shape functions


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jul 27, 22:29, 2024)