dune-fem  2.4.1-rc
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits > Class Template Reference

actual interface class for quadratures More...

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/quadrature/quadrature.hh>

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

Public Types

enum  { codimension = 0 }
 to be revised, look at caching quad More...
 
typedef FieldImp FieldType
 
typedef Traits::IntegrationPointListType IntegrationPointListType
 type of the implementation (this must actually be a quadrature implementation) More...
 
typedef IntegrationPointListType::CoordinateType CoordinateType
 type of local coordinate vectors More...
 
enum  
 
enum  
 to be revised, look at caching quad More...
 
typedef QuadraturePointWrapper< ThisTypeQuadraturePointWrapperType
 

Public Member Functions

 Quadrature (const GeometryType &geometryType, int order)
 create a quadrature for a given geometry and order More...
 
 Quadrature (const GeometryType &geometryType, const GeometryType &elementGeometry, int order)
 create a quadrature for a given geometry and order More...
 
 Quadrature (const IntegrationPointListType &ipList)
 create an integration point list from an implementation More...
 
 Quadrature (const Quadrature &org)
 copy constructor More...
 
const FieldTypeweight (size_t i) const
 obtain weight of i-th integration point More...
 
const QuadraturePointWrapperType operator[] (unsigned int i) const
 
const IntegrationPointListTypeipList () const
 obtain a reference the actual implementation More...
 
int nop () const
 obtain the number of integration points More...
 
const CoordinateTypepoint (size_t i) const
 obtain coordinates of i-th integration point More...
 
size_t id () const
 obtain the identifier of the integration point list More...
 
int order () const
 obtain order of the integration point list More...
 
GeometryType geometryType () const
 obtain GeometryType for this integration point list More...
 

Static Public Attributes

static const unsigned int dimension = dim
 

Protected Attributes

const IntegrationPointListTypeipList_
 

Detailed Description

template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
class Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >

actual interface class for quadratures

IntegrationPointList is a proxy for the actual implementations of the integration point lists. During construction, the IntegrationPointList object is configured with an appropriate implementation object from the QuadratureProvider (monostate pattern).

The design goal is minimization of construction time. The actual implementation can be created once and reused whenever it is needed. Moreover, this layout insulates the user from all initialization and storage stuff.

Note
The difference between integration point lists and quadratures is that quadratures have weights.

Member Typedef Documentation

template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
typedef IntegrationPointListType :: CoordinateType Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::CoordinateType

type of local coordinate vectors

template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
typedef FieldImp Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::FieldType
template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
typedef Traits :: IntegrationPointListType Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::IntegrationPointListType

type of the implementation (this must actually be a quadrature implementation)

typedef QuadraturePointWrapper< ThisType > Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::QuadraturePointWrapperType
inherited

Member Enumeration Documentation

anonymous enum
inherited
anonymous enum
inherited

to be revised, look at caching quad

template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
anonymous enum

to be revised, look at caching quad

Enumerator
codimension 

Constructor & Destructor Documentation

template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::Quadrature ( const GeometryType &  geometryType,
int  order 
)
inline

create a quadrature for a given geometry and order

This constructor creates a quadrature for the specified geometry which is capable of integrating polynoms up the given order exactly.

Note
The order of the quadrature may be higher than the requested one.
Parameters
[in]geometryTypegeometry type of the requested quadrature
[in]orderorder of the requested quadrature
template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::Quadrature ( const GeometryType &  geometryType,
const GeometryType &  elementGeometry,
int  order 
)
inline

create a quadrature for a given geometry and order

This constructor creates a quadrature for the specified geometry which is capable of integrating polynoms up the given order exactly.

Note
The order of the quadrature may be higher than the requested one.
Parameters
[in]geometryTypegeometry type of the requested quadrature
[in]elementGeometrygeometry type of element that resulting quadrature is used for (in case of face quadratures)
[in]orderorder of the requested quadrature
Note
This is a specialized constructor for constructing face quadratures for UGGrid.
template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::Quadrature ( const IntegrationPointListType ipList)
inlineexplicit

create an integration point list from an implementation

This constructor creates an integration point list from a given implementation.

Note
This constructor is provided mainly for testing purposes.
Parameters
[in]ipListimplementation of the integration point list
template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::Quadrature ( const Quadrature< FieldImp, dim, QuadratureTraits > &  org)
inline

copy constructor

Parameters
[in]orgquadrature to be copiedCopy constructor

Member Function Documentation

GeometryType Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::geometryType ( ) const
inlineinherited

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.

Note
Calling this method yields a virtual function call, so do not call this method unnecessarily.
Returns
GeometryType for this integration point list
size_t Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::id ( ) const
inlineinherited

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
const IntegrationPointListType& Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::ipList ( ) const
inlineinherited

obtain a reference the actual implementation

Returns
a reference to the implementation of this integration point list
int Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::nop ( ) const
inlineinherited

obtain the number of integration points

Returns
number of integration points within this list
const QuadraturePointWrapperType Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::operator[] ( unsigned int  i) const
inlineinherited
int Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::order ( ) const
inlineinherited

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.

Note
Calling this method yields a virtual function call, so do not call this method unnecessarily.
Returns
the order of the integration point list
const CoordinateType& Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::point ( size_t  i) const
inlineinherited

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
template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
const FieldType& Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::weight ( size_t  i) const
inline

obtain weight of i-th integration point

This method returns the weight of the i-th integration point for 0 <= i < nop() within the quadrature.

Note
The integration point can be obtained via the point() method.
The quadrature weights sum up to the volume of the reference element.
Parameters
[in]inumber of the integration point, 0 <= i < nop()
Returns
weight of the i-th integration point

Referenced by Dune::Fem::LocalAverageHelper::applyQuadrature(), and Dune::Fem::Integrator< Quadrature >::integrateAdd().

Member Data Documentation

template<class FieldImp, int dim, template< class, int > class QuadratureTraits = DefaultQuadratureTraits>
const unsigned int Dune::Fem::Quadrature< FieldImp, dim, QuadratureTraits >::dimension = dim
static
const IntegrationPointListType& Dune::Fem::IntegrationPointList< FieldImp, dim, QuadratureTraits >::ipList_
protectedinherited

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