1#ifndef DUNE_FEM_GRIDPART_GEOGRIDPART_ENTITY_HH
2#define DUNE_FEM_GRIDPART_GEOGRIDPART_ENTITY_HH
7#include <dune/grid/common/entity.hh>
8#include <dune/grid/common/gridenums.hh>
22 template<
int codim,
int dim,
class Gr
idFamily >
26 typedef typename std::remove_const< GridFamily >::type::Traits Traits;
27 typedef typename Traits::GridFunctionType GridFunctionType;
31 static const int dimension = std::remove_const< GridFamily >::type::dimension;
33 static const int dimensionworld = std::remove_const< GridFamily >::type::dimensionworld;
35 typedef typename std::remove_const< GridFamily >::type::ctype
ctype;
37 typedef typename Traits::template Codim< codimension >::EntitySeed
EntitySeed;
38 typedef typename Traits::template Codim< codimension >::Geometry
Geometry;
41 typedef typename Traits::HostGridPartType HostGridPartType;
43 typedef typename Geometry::Implementation GeometryImplType;
46 typedef typename HostGridPartType::template Codim< codimension >::EntityType
HostEntityType;
68 DUNE_THROW( NotImplemented,
"GeometryGridPart only implements the geometry for entities of codimension 0." );
85 assert( gridFunction_ );
86 return *gridFunction_;
91 const GridFunctionType *gridFunction_ =
nullptr;
99 template<
int dim,
class Gr
idFamily >
103 typedef typename std::remove_const< GridFamily >::type::Traits Traits;
104 typedef typename Traits::GridFunctionType GridFunctionType;
108 static const int dimension = std::remove_const< GridFamily >::type::dimension;
110 static const int dimensionworld = std::remove_const< GridFamily >::type::dimensionworld;
112 typedef typename std::remove_const< GridFamily >::type::ctype
ctype;
114 typedef typename Traits::template Codim< codimension >::EntitySeed
EntitySeed;
115 typedef typename Traits::template Codim< codimension >::Geometry
Geometry;
116 typedef typename Traits::template Codim< codimension >::LocalGeometry
LocalGeometry;
123 typedef typename Traits::HostGridPartType HostGridPartType;
126 typedef typename HostGridPartType::template Codim< codimension >::EntityType
HostEntityType;
134 template<
class LocalFunction >
136 : hostEntity_( other.hostEntity_ ), gridFunction_( other.gridFunction_ )
152 typedef typename Geometry::Implementation Impl;
160 template<
int codim >
163 return hostEntity().template count< codim >();
168 template<
int codim >
169 typename Traits::template Codim< codim >::Entity
subEntity (
int i )
const
171 typedef typename Traits::template Codim< codim >::Entity::Implementation EntityImpl;
172 return EntityImpl( *gridFunction_,
hostEntity().
template subEntity< codim >( i ) );
177 return hostEntity().hasBoundaryIntersections();
197 assert( gridFunction_ );
198 return *gridFunction_;
202 const GridFunctionType *gridFunction_ =
nullptr;
Definition: bindguard.hh:11
interface for local functions
Definition: localfunction.hh:77
Definition: defaultgridpartentity.hh:22
Definition: geometrygridpart/entity.hh:25
PartitionType partitionType() const
Definition: geometrygridpart/entity.hh:59
Traits::template Codim< codimension >::Geometry Geometry
Definition: geometrygridpart/entity.hh:38
HostGridPartType::template Codim< codimension >::EntityType HostEntityType
Definition: geometrygridpart/entity.hh:46
static const int codimension
Definition: geometrygridpart/entity.hh:30
EntitySeed seed() const
Definition: geometrygridpart/entity.hh:71
GeometryGridPartEntity()=default
Traits::template Codim< codimension >::EntitySeed EntitySeed
Definition: geometrygridpart/entity.hh:37
std::remove_const< GridFamily >::type::ctype ctype
Definition: geometrygridpart/entity.hh:35
Geometry geometry() const
Definition: geometrygridpart/entity.hh:66
static const int mydimension
Definition: geometrygridpart/entity.hh:32
const HostEntityType & hostEntity() const
Definition: geometrygridpart/entity.hh:78
GeometryGridPartEntity(const GridFunctionType &gridFunction, HostEntityType hostEntity)
Definition: geometrygridpart/entity.hh:50
static const int dimension
Definition: geometrygridpart/entity.hh:31
bool equals(const GeometryGridPartEntity &rhs) const
Definition: geometrygridpart/entity.hh:73
GeometryType type() const
Definition: geometrygridpart/entity.hh:54
static const int dimensionworld
Definition: geometrygridpart/entity.hh:33
const GridFunctionType & gridFunction() const
Definition: geometrygridpart/entity.hh:83
unsigned int subEntities(unsigned int c) const
Definition: geometrygridpart/entity.hh:64
Traits::LeafIntersectionIterator LeafIntersectionIterator
Definition: geometrygridpart/entity.hh:119
PartitionType partitionType() const
Definition: geometrygridpart/entity.hh:145
bool hasBoundaryIntersections() const
Definition: geometrygridpart/entity.hh:175
std::remove_const< GridFamily >::type::ctype ctype
Definition: geometrygridpart/entity.hh:112
Traits::template Codim< codimension >::Geometry Geometry
Definition: geometrygridpart/entity.hh:115
Traits::HierarchicIterator HierarchicIterator
Definition: geometrygridpart/entity.hh:118
bool equals(const GeometryGridPartEntity &rhs) const
Definition: geometrygridpart/entity.hh:180
Traits::template Codim< codimension >::LocalGeometry LocalGeometry
Definition: geometrygridpart/entity.hh:116
const HostEntityType & hostEntity() const
Definition: geometrygridpart/entity.hh:185
Traits::LevelIntersectionIterator LevelIntersectionIterator
Definition: geometrygridpart/entity.hh:120
const GridFunctionType & gridFunction() const
Definition: geometrygridpart/entity.hh:195
GeometryGridPartEntity()=default
Traits::template Codim< codim >::Entity subEntity(int i) const
Definition: geometrygridpart/entity.hh:169
void setHostEntity(const HostEntityType &hostEntity)
Definition: geometrygridpart/entity.hh:190
GeometryGridPartEntity(const GeometryGridPartEntity &other, const LocalFunction &localGridFunction)
Definition: geometrygridpart/entity.hh:135
GeometryGridPartEntity(const GridFunctionType &gridFunction, HostEntityType hostEntity)
Definition: geometrygridpart/entity.hh:130
Geometry geometry() const
Definition: geometrygridpart/entity.hh:150
Traits::template Codim< codimension >::EntitySeed EntitySeed
Definition: geometrygridpart/entity.hh:114
unsigned int subEntities(unsigned int codim) const
Definition: geometrygridpart/entity.hh:166
HostGridPartType::template Codim< codimension >::EntityType HostEntityType
Definition: geometrygridpart/entity.hh:126
EntitySeed seed() const
Definition: geometrygridpart/entity.hh:158
int count() const
Definition: geometrygridpart/entity.hh:161
GeometryType type() const
Definition: geometrygridpart/entity.hh:140