1#ifndef DUNE_FEM_GRIDPART_IDGRIDPART_HH
2#define DUNE_FEM_GRIDPART_IDGRIDPART_HH
4#include <dune/grid/common/gridview.hh>
28 template<
class HostGr
idPartImp >
35 template<
class HostGr
idPartImp >
46 typedef typename HostGridPartImp::ctype
ctype;
48 static const int dimension = HostGridPartImp::dimension;
67 typedef Dune::Entity< codim, dimension, const GridFamily, IdEntity >
Entity;
77 typedef Dune::IntersectionIterator< const GridFamily, IntersectionIteratorImplType, IntersectionImplType >
LeafIntersectionIterator;
78 typedef Dune::IntersectionIterator< const GridFamily, IntersectionIteratorImplType, IntersectionImplType >
LevelIntersectionIterator;
80 typedef Dune::EntityIterator< 0, const GridFamily, DeadIterator< typename Codim< 0 >::Entity > >
HierarchicIterator;
85 :
public Traits::template
Codim< codim >
95 typedef typename HostGridPartType::GridType
GridType;
106 template<
int codim >
115 template< PartitionIteratorType pitype >
118 typedef EntityIterator< codim, const GridFamily, IdIterator< codim, pitype, const GridFamily > >
IteratorType;
124 static const bool conforming = HostGridPartType::Traits::conforming;
132 template<
class HostGr
idPartImp >
135 ,
public AddGridView< IdGridPartTraits< HostGridPartImp > >
154 template<
int codim >
156 :
public BaseType::template
Codim< codim >
191 template<
int codim >
192 typename Codim< codim >::IteratorType
195 return begin< codim, InteriorBorder_Partition >();
198 template<
int codim, PartitionIteratorType pitype >
199 typename Codim< codim >::template Partition< pitype >::IteratorType
205 template<
int codim >
206 typename Codim< codim >::IteratorType
209 return end< codim, InteriorBorder_Partition >();
212 template<
int codim, PartitionIteratorType pitype >
213 typename Codim< codim >::template Partition< pitype >::IteratorType
236 return hostGridPart().boundaryId( intersection.impl().hostIntersection() );
241 template<
class DataHandle,
class Data >
243 InterfaceType iftype, CommunicationDirection dir )
const
245 typedef CommDataHandleIF< DataHandle, Data > HostHandleType;
247 hostGridPart().communicate( handleWrapper, iftype, dir );
250 template <
class EntitySeed >
251 typename Codim< EntitySeed::codimension >::EntityType
259 template<
class Entity >
260 MakeableInterfaceObject< typename Codim< Entity::codimension >::EntityType >
265 typedef typename EntityType::Implementation Implementation;
266 typedef MakeableInterfaceObject< EntityType > EntityObj;
268 return EntityObj( Implementation(
entity ) );
275 typedef typename GridFamily::Traits::ExtraData
ExtraData;
288 template<
int codim,
int dim,
class Gr
idFamily >
291 typedef Dune::Entity< codim, dim, GridFamily, IdEntity >
EntityType;
297 return HostAccessType::gridEntity( entity.impl().hostEntity() );
306 template<
class HostGr
idPart,
int codim, PartitionIteratorType partition >
315 typedef typename GridPartType::template Codim< codim >::EntityType
EntityType;
320 : hostEntitySearch_( gridPart.hostGridPart() ),
321 data_( gridPart.data() )
326 typedef typename EntityType::Implementation EntityImpl;
327 return EntityImpl( data_, hostEntitySearch_( x ) );
Definition: bindguard.hh:11
Definition: deaditerator.hh:49
Definition: deaditerator.hh:158
Definition: entitysearch.hh:131
Interface for the GridPart classes A GridPart class allows to access only a specific subset of a grid...
Definition: gridpart.hh:77
Traits::CollectiveCommunicationType CollectiveCommunicationType
Collective communication.
Definition: gridpart.hh:96
Traits::GridType GridType
type of Grid implementation
Definition: gridpart.hh:90
IntersectionIteratorType::Intersection IntersectionType
type of Intersection
Definition: gridpart.hh:111
Traits::IntersectionIteratorType IntersectionIteratorType
type of IntersectionIterator
Definition: gridpart.hh:108
Definition: gridpart.hh:396
Definition: gridpart.hh:419
const GridViewType & gridView() const
Definition: gridpart.hh:441
Definition: gridpart2gridview.hh:69
MetaTwistUtility forwards the twist calls to the TwistUtility of the underlying HostTwistUtility.
Definition: metatwistutility.hh:22
Definition: idgridpart.hh:136
BaseType::IntersectionIteratorType IntersectionIteratorType
Definition: idgridpart.hh:148
HostGridPartType & hostGridPart()
Definition: idgridpart.hh:273
HostGridPartType hostGridPart_
Definition: idgridpart.hh:279
Codim< codim >::template Partition< pitype >::IteratorType begin() const
Definition: idgridpart.hh:200
const GridType & grid() const
Definition: idgridpart.hh:176
const IndexSetType & indexSet() const
Definition: idgridpart.hh:186
IdGridPart(GridType &grid)
Definition: idgridpart.hh:159
MakeableInterfaceObject< typename Codim< Entity::codimension >::EntityType > convert(const Entity &entity) const
Definition: idgridpart.hh:261
void communicate(CommDataHandleIF< DataHandle, Data > &handle, InterfaceType iftype, CommunicationDirection dir) const
Definition: idgridpart.hh:242
BaseType::CollectiveCommunicationType CollectiveCommunicationType
Definition: idgridpart.hh:150
IdGridPart(const HostGridPartType &hostGridPart)
Definition: idgridpart.hh:170
int boundaryId(const IntersectionType &intersection) const
Definition: idgridpart.hh:234
IntersectionIteratorType ibegin(const typename Codim< 0 >::EntityType &entity) const
Definition: idgridpart.hh:224
IdGridPart(const GridViewType *gridView)
Definition: idgridpart.hh:164
const HostGridPartType & hostGridPart() const
Definition: idgridpart.hh:271
BaseType::GridType GridType
Definition: idgridpart.hh:146
ExtraData data() const
Definition: idgridpart.hh:276
GridType & grid()
Definition: idgridpart.hh:181
Codim< codim >::IteratorType end() const
Definition: idgridpart.hh:207
int level() const
Definition: idgridpart.hh:219
IntersectionIteratorType iend(const typename Codim< 0 >::EntityType &entity) const
Definition: idgridpart.hh:229
AddGridViewType::GridViewType GridViewType
Definition: idgridpart.hh:152
GridFamily::Traits::ExtraData ExtraData
Definition: idgridpart.hh:275
IndexSetType indexSet_
Definition: idgridpart.hh:280
Codim< codim >::template Partition< pitype >::IteratorType end() const
Definition: idgridpart.hh:214
GridFamily::Traits::HostGridPartType HostGridPartType
Definition: idgridpart.hh:144
Codim< codim >::IteratorType begin() const
Definition: idgridpart.hh:193
BaseType::IntersectionType IntersectionType
Definition: idgridpart.hh:149
BaseType::IndexSetType IndexSetType
Definition: idgridpart.hh:147
const CollectiveCommunicationType & comm() const
Definition: idgridpart.hh:239
Codim< EntitySeed::codimension >::EntityType entity(const EntitySeed &seed) const
Definition: idgridpart.hh:252
Definition: idgridpart.hh:37
IdIndexSet< const GridFamily > IndexSetType
Definition: idgridpart.hh:97
GridFamily::Traits::HostGridPartType HostGridPartType
Definition: idgridpart.hh:93
IdIntersectionIterator< const GridFamily > IntersectionIteratorImplType
Definition: idgridpart.hh:102
IdIntersection< const GridFamily > IntersectionImplType
Definition: idgridpart.hh:103
static const bool conforming
Definition: idgridpart.hh:124
MetaTwistUtility< typename HostGridPartImp ::TwistUtilityType > TwistUtilityType
type of twist utility
Definition: idgridpart.hh:41
static const PartitionIteratorType indexSetPartitionType
Definition: idgridpart.hh:99
HostGridPartType::GridType GridType
Definition: idgridpart.hh:95
static const InterfaceType indexSetInterfaceType
Definition: idgridpart.hh:100
IdGridPart< HostGridPartImp > GridPartType
Definition: idgridpart.hh:38
HostGridPartType::CollectiveCommunicationType CollectiveCommunicationType
Definition: idgridpart.hh:122
IntersectionIterator< const GridFamily, IntersectionIteratorImplType, IntersectionImplType > IntersectionIteratorType
Definition: idgridpart.hh:104
Definition: idgridpart.hh:45
Traits::LeafIntersectionIterator LeafIntersectionIterator
Definition: idgridpart.hh:88
static const int dimensionworld
Definition: idgridpart.hh:49
Traits::HierarchicIterator HierarchicIterator
Definition: idgridpart.hh:91
Traits::LevelIntersectionIterator LevelIntersectionIterator
Definition: idgridpart.hh:89
static const int dimension
Definition: idgridpart.hh:48
HostGridPartImp::ctype ctype
Definition: idgridpart.hh:46
Definition: idgridpart.hh:52
EmptyData ExtraData
Definition: idgridpart.hh:59
Dune::IntersectionIterator< const GridFamily, IntersectionIteratorImplType, IntersectionImplType > LeafIntersectionIterator
Definition: idgridpart.hh:77
Dune::Intersection< const GridFamily, IntersectionImplType > LevelIntersection
Definition: idgridpart.hh:75
HostGridPartImp HostGridPartType
Definition: idgridpart.hh:53
DeadIntersection< const GridFamily > IntersectionImplType
Definition: idgridpart.hh:71
Dune::Intersection< const GridFamily, IntersectionImplType > LeafIntersection
Definition: idgridpart.hh:74
Dune::EntityIterator< 0, const GridFamily, DeadIterator< typename Codim< 0 >::Entity > > HierarchicIterator
Definition: idgridpart.hh:80
DeadIntersectionIterator< const GridFamily > IntersectionIteratorImplType
Definition: idgridpart.hh:72
Dune::IntersectionIterator< const GridFamily, IntersectionIteratorImplType, IntersectionImplType > LevelIntersectionIterator
Definition: idgridpart.hh:78
Definition: idgridpart.hh:55
Definition: idgridpart.hh:63
HostGridPartType::GridType::template Codim< codim >::EntitySeed EntitySeed
Definition: idgridpart.hh:68
Dune::Geometry< dimension - codim, dimension, const GridFamily, IdLocalGeometry > LocalGeometry
Definition: idgridpart.hh:65
Dune::Entity< codim, dimension, const GridFamily, IdEntity > Entity
Definition: idgridpart.hh:67
Dune::Geometry< dimension - codim, dimensionworld, const GridFamily, IdGeometry > Geometry
Definition: idgridpart.hh:64
Definition: idgridpart.hh:86
Definition: idgridpart.hh:108
GridFamily::Traits::template Codim< codim >::EntitySeed EntitySeedType
Definition: idgridpart.hh:113
GridFamily::Traits::template Codim< codim >::LocalGeometry LocalGeometryType
Definition: idgridpart.hh:110
GridFamily::Traits::template Codim< codim >::Entity EntityType
Definition: idgridpart.hh:112
GridFamily::Traits::template Codim< codim >::Geometry GeometryType
Definition: idgridpart.hh:109
Definition: idgridpart.hh:117
EntityIterator< codim, const GridFamily, IdIterator< codim, pitype, const GridFamily > > IteratorType
Definition: idgridpart.hh:118
Definition: idgridpart.hh:157
GridEntityAccess< typename EntityType::Implementation::HostEntityType > HostAccessType
Definition: idgridpart.hh:292
Dune::Entity< codim, dim, GridFamily, IdEntity > EntityType
Definition: idgridpart.hh:291
static const GridEntityType & gridEntity(const EntityType &entity)
Definition: idgridpart.hh:295
HostAccessType::GridEntityType GridEntityType
Definition: idgridpart.hh:293
Definition: idgridpart.hh:308
EntitySearch(const GridPartType &gridPart)
Definition: idgridpart.hh:319
const EntitySearch< HostGridPart > hostEntitySearch_
Definition: idgridpart.hh:331
GridPartType::template Codim< codim >::EntityType EntityType
Definition: idgridpart.hh:315
GridPartType::ExtraData ExtraData
Definition: idgridpart.hh:313
ExtraData data_
Definition: idgridpart.hh:332
IdGridPart< HostGridPart > GridPartType
Definition: idgridpart.hh:312
EntityType::Geometry::GlobalCoordinate GlobalCoordinateType
Definition: idgridpart.hh:317
Definition: gridpart/idgridpart/datahandle.hh:23
Definition: gridpart/idgridpart/geometry.hh:97
Definition: gridpart/idgridpart/geometry.hh:136
Definition: idgridpart/indexset.hh:260
Definition: idgridpart/intersection.hh:20
Definition: idgridpart/intersectioniterator.hh:22
Definition: idgridpart/iterator.hh:21