dune-fem 2.8.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members
Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering > Class Template Reference

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

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

Inheritance diagram for Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >:
Inheritance graph

Classes

struct  Compare
 

Public Types

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

Public Member Functions

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

Protected Types

typedef LegendreShapeFunction< FunctionSpaceShapeFunctionType
 

Protected Attributes

std::vector< ShapeFunctionTypeshapeFunctions_
 
int order_
 

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

◆ ShapeFunctionType

template<class FunctionSpace , bool hierarchicalOrdering = false>
typedef LegendreShapeFunction< FunctionSpace > Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::ShapeFunctionType
protected

Constructor & Destructor Documentation

◆ LegendreShapeFunctionSet() [1/3]

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

default constructor resulting in uninitialized shape function set

◆ LegendreShapeFunctionSet() [2/3]

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

initialize with polynomial order

Parameters
[in]order

◆ LegendreShapeFunctionSet() [3/3]

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;
};

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

Member Data Documentation

◆ order_

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

◆ shapeFunctions_

template<class FunctionSpace , bool hierarchicalOrdering = false>
std::vector< ShapeFunctionType > Dune::Fem::LegendreShapeFunctionSet< FunctionSpace, hierarchicalOrdering >::shapeFunctions_
protected

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