dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature > Class Template Reference


More...

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

Inheritance diagram for Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >:
Inheritance graph

Public Types

typedef Base::GridPartType GridPartType
 
typedef Base::EntityType EntityType
 
typedef Base::CoordinateType CoordinateType
 The type of the coordinates in the codim-0 reference element.
 
typedef QuadraturePointWrapper< ThisQuadraturePointWrapperType
 the type of the quadrature point
 
typedef QuadraturePointIterator< ThisIteratorType
 type of iterator
 
enum  Side { INSIDE , OUTSIDE }
 inside and outside flags More...
 
typedef GridPartType::ctype RealType
 coordinate type
 
typedef IntegrationTraits::IntegrationPointListType IntegrationPointListType
 type of the integration point list
 
typedef IntegrationPointListType::CoordinateType LocalCoordinateType
 

Public Member Functions

template<class QuadratureKeyType >
 CachingQuadratureImpl (const EntityType &entity, const QuadratureKeyType &quadKey)
 
template<class QuadratureKeyType >
 CachingQuadratureImpl (const GeometryType &geometry, const QuadratureKeyType &quadKey)
 
const QuadraturePointWrapperType operator[] (const size_t i) const
 
IteratorType begin () const noexcept
 
IteratorType end () const noexcept
 
const CoordinateTypepoint (const size_t i) const
 obtain coordinates of i-th integration point
 
auto weight (std::size_t i) const
 obtain weight of i-th integration point (if quadrature, else 1.0)
 
size_t cachingPoint (const size_t quadraturePoint) const
 map quadrature points to caching points
 
size_t interpolationPoint (const size_t quadraturePoint) const
 map quadrature points to interpolation points
 
bool isInterpolationQuadrature (const size_t numShapeFunctions) const
 check if quadrature is interpolation quadrature
 
int twistId () const
 returns the twistId, i.e. [0,...,7]
 
const LocalCoordinateTypelocalPoint (size_t i) const
 obtain local 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
 
int order () const
 obtain order of the integration point list
 
GeometryType geometry () const
 
GeometryType type () const
 
GeometryType geometryType () const
 
GeometryType elementGeometry () const
 obtain GeometryType of the corresponding codim-0 the integration point list belongs to
 
size_t localCachingPoint (const size_t quadraturePoint) const
 convenience implementation for Dune::Fem::CachingInterface
 
int localFaceIndex () const
 
int nCachingPoints () const
 
int cachingPointStart () const
 

Static Public Member Functions

static constexpr bool twisted ()
 returns true if cachingPoint is not the identity mapping
 

Static Public Attributes

static const int codimension = Base::codimension
 
static const int pointSetId
 id of point set, positive if interpolation point set, otherwise negative
 
static const int dimension = GridPartType::dimension
 dimension of the grid
 

Protected Member Functions

const IntegrationPointListTypequadImp () const
 obtain the actual implementation of the quadrature
 

Protected Attributes

IntegrationPointListType quad_
 

Detailed Description

template<class GridPartImp, class IntegrationTraits, bool isQuadrature>
class Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >



Member Typedef Documentation

◆ CoordinateType

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
typedef Base::CoordinateType Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::CoordinateType

The type of the coordinates in the codim-0 reference element.

◆ EntityType

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
typedef Base::EntityType Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::EntityType

◆ GridPartType

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
typedef Base::GridPartType Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::GridPartType

◆ IntegrationPointListType

template<class GridPartImp , class IntegrationTraits >
typedef IntegrationTraits::IntegrationPointListType Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::IntegrationPointListType
inherited

type of the integration point list

◆ IteratorType

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
typedef QuadraturePointIterator< This > Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::IteratorType

type of iterator

◆ LocalCoordinateType

template<class GridPartImp , class IntegrationTraits >
typedef IntegrationPointListType::CoordinateType Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::LocalCoordinateType
inherited

◆ QuadraturePointWrapperType

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
typedef QuadraturePointWrapper< This > Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::QuadraturePointWrapperType

the type of the quadrature point

◆ RealType

template<class GridPartImp , class IntegrationTraits >
typedef GridPartType::ctype Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::RealType
inherited

coordinate type

Member Enumeration Documentation

◆ Side

template<class GridPartImp , class IntegrationTraits >
enum Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::Side
inherited

inside and outside flags

Enumerator
INSIDE 
OUTSIDE 

Constructor & Destructor Documentation

◆ CachingQuadratureImpl() [1/2]

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
template<class QuadratureKeyType >
Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::CachingQuadratureImpl ( const EntityType entity,
const QuadratureKeyType &  quadKey 
)
inline

◆ CachingQuadratureImpl() [2/2]

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
template<class QuadratureKeyType >
Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::CachingQuadratureImpl ( const GeometryType geometry,
const QuadratureKeyType &  quadKey 
)
inline

Member Function Documentation

◆ begin()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
IteratorType Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::begin ( ) const
inlinenoexcept

◆ cachingPoint()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
size_t Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::cachingPoint ( const size_t  quadraturePoint) const
inline

map quadrature points to caching points

For codim-1 entites, the mapping consists of two stages:

  • Consider the twist to get the quadrature point number on the face of the (codim-0) reference element,
  • Map the twisted quadrature point number to the caching point number.
Parameters
[in]quadraturePointnumber of quadrature point to map to a caching point

◆ cachingPointStart()

template<class GridPartImp , class IntegrationTraits >
int Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::cachingPointStart ( ) const
inlineinherited

◆ elementGeometry()

template<class GridPartImp , class IntegrationTraits >
GeometryType Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::elementGeometry ( ) const
inlineinherited

obtain GeometryType of the corresponding codim-0 the integration point list belongs to

An element integration point list can return the coordinates of integration points with resepct to the codim-0 reference element and the reference element corresponding to the subentity the quadrature actually lives on. This method returns the geometry of the codim-0 entity.

Note
Calling this method yields a virtual function call, so do not call this method unnecessarily.
Returns
GeometryType for this integration point list

◆ end()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
IteratorType Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::end ( ) const
inlinenoexcept

◆ geometry()

template<class GridPartImp , class IntegrationTraits >
GeometryType Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::geometry ( ) const
inlineinherited

◆ geometryType()

template<class GridPartImp , class IntegrationTraits >
GeometryType Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::geometryType ( ) const
inlineinherited

◆ id()

template<class GridPartImp , class IntegrationTraits >
size_t Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::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

◆ interpolationPoint()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
size_t Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::interpolationPoint ( const size_t  quadraturePoint) const
inline

map quadrature points to interpolation points

Parameters
[in]quadraturePointnumber of quadrature point to map to an interpolation point

◆ isInterpolationQuadrature()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
bool Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::isInterpolationQuadrature ( const size_t  numShapeFunctions) const
inline

check if quadrature is interpolation quadrature

Parameters
[in]numShapeFunctionsnumber of shapeFunctions that has to match number of quadrature points or number of internal interpolation points

◆ localCachingPoint()

template<class GridPartImp , class IntegrationTraits >
size_t Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::localCachingPoint ( const size_t  quadraturePoint) const
inlineinherited

convenience implementation for Dune::Fem::CachingInterface

◆ localFaceIndex()

template<class GridPartImp , class IntegrationTraits >
int Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::localFaceIndex ( ) const
inlineinherited

◆ localPoint()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
const LocalCoordinateType & Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::localPoint ( size_t  i) const
inline

obtain local coordinates of i-th integration point

This method returns a reference to the local coordinates of the i-th integration point for 0 <= i < nop(). Here, local coordinates means coordinates with respect to the reference element of the subentity.

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

◆ nCachingPoints()

template<class GridPartImp , class IntegrationTraits >
int Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::nCachingPoints ( ) const
inlineinherited

◆ nop()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
size_t Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::nop ( ) const
inline

obtain the number of integration points

Returns
number of integration points within this list

◆ operator[]()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
const QuadraturePointWrapperType Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::operator[] ( const size_t  i) const
inline

◆ order()

template<class GridPartImp , class IntegrationTraits >
int Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::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

◆ point()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
const CoordinateType & Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::point ( const 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

◆ quadImp()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
const IntegrationPointListType & Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::quadImp ( ) const
inlineprotected

obtain the actual implementation of the quadrature

Note
This method may only be used in derived classes.
Returns
a reference to the actual implementation of the quadrature

◆ twisted()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
static constexpr bool Dune::Fem::CachingInterface::twisted ( )
inlinestaticconstexpr

returns true if cachingPoint is not the identity mapping

◆ twistId()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
int Dune::Fem::CachingInterface::twistId ( ) const
inline

returns the twistId, i.e. [0,...,7]

◆ type()

template<class GridPartImp , class IntegrationTraits >
GeometryType Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::type ( ) const
inlineinherited

◆ weight()

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
auto Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::weight ( std::size_t  i) const
inline

obtain weight of i-th integration point (if quadrature, else 1.0)

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

Member Data Documentation

◆ codimension

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
const int Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::codimension = Base::codimension
static

◆ dimension

template<class GridPartImp , class IntegrationTraits >
const int Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::dimension = GridPartType::dimension
staticinherited

dimension of the grid

◆ pointSetId

template<class GridPartImp , class IntegrationTraits , bool isQuadrature>
const int Dune::Fem::CachingQuadratureImpl< GridPartImp, 0, IntegrationTraits, isQuadrature >::pointSetId
static
Initial value:
typename IntegrationTraits::IntegrationPointListType::Traits > :: value

id of point set, positive if interpolation point set, otherwise negative

◆ quad_

template<class GridPartImp , class IntegrationTraits >
IntegrationPointListType Dune::Fem::ElementPointListBase< GridPartImp, 0, IntegrationTraits >::quad_
protectedinherited

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