dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::IntegrationPointListImp< FieldImp, dim > Class Template Referenceabstract

Generic implementation of an IntegrationPointList. More...

#include <dune/fem/quadrature/quadratureimp.hh>

Inheritance diagram for Dune::Fem::IntegrationPointListImp< FieldImp, dim >:
Inheritance graph

Public Types

enum  { codimension = 0 }
 to be revised, look at caching quad More...
 
typedef FieldImp FieldType
 field type
 
typedef FieldVector< FieldType, dim > CoordinateType
 type of local coordinates
 

Public Member Functions

 IntegrationPointListImp (const IntegrationPointListImp &)=delete
 
virtual ~IntegrationPointListImp ()=default
 
const CoordinateTypepoint (size_t i) const
 obtain coordinates of i-th integration point
 
size_t nop () const
 obtain the number of integration points
 
size_t id () const
 obtain the identifier of the integration point list
 
virtual int order () const =0
 obtain order of the integration point list
 
virtual GeometryType geometryType () const =0
 obtain GeometryType for this integration point list
 
virtual std::vector< ElementCoordinateTypeinterpolationPoints (const int reqDim) const
 returns list of element interpolation points for a given face quadrature
 
virtual bool isFaceInterpolationQuadrature (const size_t numShapeFunctions) const
 return true if quadrature is also a set of interpolation points for a given number of shape functions
 

Static Public Attributes

static const int dimension = dim
 dimension of quadrature
 

Protected Types

typedef IntegrationPointListImp< FieldType, dim > ThisType
 
typedef FieldVector< FieldType, dim+1 > ElementCoordinateType
 

Protected Member Functions

 IntegrationPointListImp (size_t id)
 Constructor.
 
void addIntegrationPoint (const CoordinateType &point)
 Adds an integration point to the list.
 
void setIntegrationPoints (std::vector< CoordinateType > &&points)
 Overwrites integration point list

 

Protected Attributes

std::vector< CoordinateTypepoints_
 
const size_t id_
 

Detailed Description

template<typename FieldImp, int dim>
class Dune::Fem::IntegrationPointListImp< FieldImp, dim >

Generic implementation of an IntegrationPointList.

An integration point list is simply a list of points, given in local coordinates, i.e., coordinates within the reference element.

Note
Integration point lists do not change over time. It can safely be assumed that they always return the same points in the same order.

Member Typedef Documentation

◆ CoordinateType

template<typename FieldImp , int dim>
typedef FieldVector< FieldType, dim > Dune::Fem::IntegrationPointListImp< FieldImp, dim >::CoordinateType

type of local coordinates

◆ ElementCoordinateType

template<typename FieldImp , int dim>
typedef FieldVector< FieldType, dim+1 > Dune::Fem::IntegrationPointListImp< FieldImp, dim >::ElementCoordinateType
protected

◆ FieldType

template<typename FieldImp , int dim>
typedef FieldImp Dune::Fem::IntegrationPointListImp< FieldImp, dim >::FieldType

field type

◆ ThisType

template<typename FieldImp , int dim>
typedef IntegrationPointListImp< FieldType, dim > Dune::Fem::IntegrationPointListImp< FieldImp, dim >::ThisType
protected

Member Enumeration Documentation

◆ anonymous enum

template<typename FieldImp , int dim>
anonymous enum

to be revised, look at caching quad

Enumerator
codimension 

Constructor & Destructor Documentation

◆ IntegrationPointListImp() [1/2]

template<typename FieldImp , int dim>
Dune::Fem::IntegrationPointListImp< FieldImp, dim >::IntegrationPointListImp ( size_t  id)
inlineexplicitprotected

Constructor.

The constructor simply creates an empty point list and stores the specified identifier.

Note
The constructors of derived classes should fill the integration point list via addIntegrationPoint.
The identifier of an integration point list must be globally unique. Even integration point lists for different dimensions must have different identifiers.
Parameters
[in]idunique identifier of the integration point list (provided by QuadratureProvider)

◆ IntegrationPointListImp() [2/2]

template<typename FieldImp , int dim>
Dune::Fem::IntegrationPointListImp< FieldImp, dim >::IntegrationPointListImp ( const IntegrationPointListImp< FieldImp, dim > &  )
delete

◆ ~IntegrationPointListImp()

template<typename FieldImp , int dim>
virtual Dune::Fem::IntegrationPointListImp< FieldImp, dim >::~IntegrationPointListImp ( )
virtualdefault

Member Function Documentation

◆ addIntegrationPoint()

template<typename FieldImp , int dim>
void Dune::Fem::IntegrationPointListImp< FieldImp, dim >::addIntegrationPoint ( const CoordinateType point)
inlineprotected

Adds an integration point to the list.

This method allows derived classes to add integration points to the list. This mehtod should only be used within the constructor of the derived class.

◆ geometryType()

template<typename FieldImp , int dim>
virtual GeometryType Dune::Fem::IntegrationPointListImp< FieldImp, dim >::geometryType ( ) const
pure virtual

obtain GeometryType for this integration point list

Integration point lists are specified in local coordinates, i.e., coordinates with respect to the reference element. Hence, each integration point list is only valid for one type of geometry, i.e., for one reference element. The type can be retrieved via this method.

Returns
GeometryType for this integration point list

Implemented in Dune::Fem::CornerPointList< ct, geometryId >, Dune::Fem::QuadratureRulesFactory< FieldImp, dim >, Dune::Fem::SimplexQuadrature< FieldImp, dim >, Dune::Fem::CubeQuadrature< FieldImp, dim >, Dune::Fem::PrismQuadrature< FieldImp >, Dune::Fem::PyramidQuadrature< FieldImp >, Dune::Fem::PolyhedronQuadrature< FieldImp, dim >, Dune::Fem::LumpingQuadrature< FieldImp, geometryId >, Dune::Fem::TestQuadrature< ct, dim >, and Dune::Fem::LagrangePointListInterface< FieldImp, dim, maxPolOrder >.

◆ id()

template<typename FieldImp , int dim>
size_t Dune::Fem::IntegrationPointListImp< FieldImp, dim >::id ( ) const
inline

obtain the identifier of the integration point list

The identifier of an integration point list must be globally unique. Even integration point lists for different dimensions must have different identifiers.

Note
Quadratures are considered distinct if they differ in one of the following points: geometry type, order, dimension or implementation.
Returns
globally unique identifier of the integration point list

◆ interpolationPoints()

template<typename FieldImp , int dim>
virtual std::vector< ElementCoordinateType > Dune::Fem::IntegrationPointListImp< FieldImp, dim >::interpolationPoints ( const int  reqDim) const
inlinevirtual

returns list of element interpolation points for a given face quadrature

◆ isFaceInterpolationQuadrature()

template<typename FieldImp , int dim>
virtual bool Dune::Fem::IntegrationPointListImp< FieldImp, dim >::isFaceInterpolationQuadrature ( const size_t  numShapeFunctions) const
inlinevirtual

return true if quadrature is also a set of interpolation points for a given number of shape functions

◆ nop()

template<typename FieldImp , int dim>
size_t Dune::Fem::IntegrationPointListImp< FieldImp, dim >::nop ( ) const
inline

obtain the number of integration points

Returns
number of integration points within this list

◆ order()

template<typename FieldImp , int dim>
virtual int Dune::Fem::IntegrationPointListImp< FieldImp, dim >::order ( ) const
pure virtual

obtain order of the integration point list

The order of a quadrature is the maximal polynomial degree that is guaranteed to be integrated exactly by the quadrature.

In case of an integration point list, the definition of this value is left to the implementor.

Returns
the order of the integration point list

Implemented in Dune::Fem::CornerPointList< ct, geometryId >, Dune::Fem::QuadratureRulesFactory< FieldImp, dim >, Dune::Fem::SimplexQuadrature< FieldImp, dim >, Dune::Fem::CubeQuadrature< FieldImp, dim >, Dune::Fem::PrismQuadrature< FieldImp >, Dune::Fem::PyramidQuadrature< FieldImp >, Dune::Fem::PolyhedronQuadrature< FieldImp, dim >, Dune::Fem::LumpingQuadrature< FieldImp, geometryId >, Dune::Fem::TestQuadrature< ct, dim >, and Dune::Fem::LagrangePointListInterface< FieldImp, dim, maxPolOrder >.

◆ point()

template<typename FieldImp , int dim>
const CoordinateType & Dune::Fem::IntegrationPointListImp< FieldImp, dim >::point ( size_t  i) const
inline

obtain coordinates of i-th integration point

This method returns a reference to the coordinates of the i-th integration point for 0 <= i < nop(). The integration point is given in local coordinates, i.e., coordinates with respect to the reference element.

Parameters
[in]inumber of the integration point, 0 <= i < nop()
Returns
reference to i-th integration point

◆ setIntegrationPoints()

template<typename FieldImp , int dim>
void Dune::Fem::IntegrationPointListImp< FieldImp, dim >::setIntegrationPoints ( std::vector< CoordinateType > &&  points)
inlineprotected

Overwrites integration point list

Member Data Documentation

◆ dimension

template<typename FieldImp , int dim>
const int Dune::Fem::IntegrationPointListImp< FieldImp, dim >::dimension = dim
static

dimension of quadrature

◆ id_

template<typename FieldImp , int dim>
const size_t Dune::Fem::IntegrationPointListImp< FieldImp, dim >::id_
protected

◆ points_

template<typename FieldImp , int dim>
std::vector< CoordinateType > Dune::Fem::IntegrationPointListImp< FieldImp, dim >::points_
mutableprotected

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