1#ifndef DUNE_FEM_CORNERPOINTSET_HH
2#define DUNE_FEM_CORNERPOINTSET_HH
4#include <dune/geometry/referenceelements.hh>
6#include <dune/fem/quadrature/cachingquadrature.hh>
17 template<
class Gr
idPart >
20 template<
class ct, Dune::GeometryType::Id geometryId >
21 class CornerPointList;
28 template<
class Gr
idPart >
29 class CornerPointSetTraits
31 template<
class ct,
int dim >
32 class PointListTraits;
35 typedef IntegrationPointList< typename GridPart::ctype, GridPart::dimension, PointListTraits >
36 IntegrationPointListType;
45 template<
class Gr
idPart >
46 template<
class ct,
int dim >
47 class CornerPointSetTraits< GridPart >::PointListTraits
49 static const int pdim = (dim > 0 ? dim : 1);
59 typedef CornerPointList< ct, simplexId > SimplexQuadratureType;
60 typedef CornerPointList< ct, cubeId > CubeQuadratureType;
61 typedef CornerPointList< ct, prismId > PrismQuadratureType;
62 typedef CornerPointList< ct, pyramidId > PyramidQuadratureType;
64 typedef SimplexQuadratureType PointQuadratureType;
65 typedef SimplexQuadratureType LineQuadratureType;
67 typedef int QuadratureKeyType ;
75 template<
class Gr
idPart >
77 :
public CachingPointList< GridPart, 0, CornerPointSetTraits< GridPart > >
79 typedef CachingPointList< GridPart, 0, CornerPointSetTraits< GridPart > > BaseType;
82 CornerPointSet (
const GeometryType &type )
88 CornerPointSet (
const typename GridPart::template Codim< 0 >::EntityType &entity )
89 : CornerPointSet( entity.type() )
99 template<
class ct, Dune::GeometryType::Id geometryId >
100 class CornerPointList
101 :
public IntegrationPointListImp< ct, Dune::GeometryType(geometryId).dim() >
108 explicit CornerPointList (
const size_t id );
109 CornerPointList (
const GeometryType &type,
const int order,
const size_t id );
111 int order ()
const {
return 1; }
113 static unsigned int maxOrder () {
return 1; }
129 template<
class ct, Dune::GeometryType::Id geometryId >
130 inline CornerPointList< ct, geometryId >::CornerPointList (
const size_t id )
137 template<
class ct, Dune::GeometryType::Id geometryId >
138 inline CornerPointList< ct, geometryId >
139 ::CornerPointList (
const GeometryType &type,
const int order,
const size_t id )
146 template<
class ct, Dune::GeometryType::Id geometryId >
147 inline void CornerPointList< ct, geometryId >::initialize ()
151 const unsigned int size = refElement.size(
gt.dim() );
152 for(
unsigned int i = 0; i < size; ++i )
153 addIntegrationPoint( refElement.position( i,
gt.dim() ) );
void addIntegrationPoint(const CoordinateType &point)
Adds an integration point to the list.
Definition: quadratureimp.hh:169
IntegrationPointListImp(size_t id)
Constructor.
Definition: quadratureimp.hh:76
FieldVector< FieldType, dim > CoordinateType
type of local coordinates
Definition: quadratureimp.hh:46
IntegrationPointListType::CoordinateType CoordinateType
type of coordinate
Definition: quadrature.hh:180
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:114
constexpr unsigned int dim() const
Return dimension of the type.
Definition: type.hh:360
GeometryType geometryType(const Dune::GeometryType &t)
mapping from GeometryType to VTKGeometryType
Definition: common.hh:151
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:132
bool gt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first greater than second
Definition: float_cmp.cc:158
constexpr GeometryType cube(unsigned int dim)
Returns a GeometryType representing a hypercube of dimension dim.
Definition: type.hh:462
constexpr GeometryType prism
GeometryType representing a 3D prism.
Definition: type.hh:528
constexpr GeometryType pyramid
GeometryType representing a 3D pyramid.
Definition: type.hh:522
constexpr GeometryType simplex(unsigned int dim)
Returns a GeometryType representing a simplex of dimension dim.
Definition: type.hh:453
Dune namespace.
Definition: alignedallocator.hh:13
Class providing access to the singletons of the reference elements.
Definition: referenceelements.hh:128