1#ifndef DUNE_FEM_GRIDPART_GEOGRIDPART_HH
2#define DUNE_FEM_GRIDPART_GEOGRIDPART_HH
6#include <dune/grid/common/gridview.hh>
30 template<
class CoordFunction >
33 template<
class CoordFunction >
34 struct GeoGridPartFamily;
41 template<
class CoordFunction >
49 operator const CoordFunctionType & ()
const { assert( coordFunction_ );
return *coordFunction_; }
61 template<
class CoordFunction >
64 typedef typename CoordFunction::RangeFieldType
ctype;
66 static const int dimension = CoordFunction::GridPartType::dimension;
67 static const int dimensionworld = CoordFunction::FunctionSpaceType::dimRange;
84 typedef Dune::Entity< codim, dimension, const GridPartFamily, GeoEntity >
Entity;
91 typedef Dune::Intersection< const GridPartFamily, IntersectionImplType >
LeafIntersection;
94 typedef Dune::IntersectionIterator< const GridPartFamily, IntersectionIteratorImplType, IntersectionImplType >
LeafIntersectionIterator;
95 typedef Dune::IntersectionIterator< const GridPartFamily, IntersectionIteratorImplType, IntersectionImplType >
LevelIntersectionIterator;
97 typedef Dune::EntityIterator< 0, const GridPartFamily, DeadIterator< typename Codim< 0 >::Entity > >
HierarchicIterator;
100 template<
int codim >
102 :
public Traits::template
Codim< codim >
113 template<
class CoordFunction >
122 typedef typename HostGridPartType::GridType
GridType;
137 template<
int codim >
147 template< PartitionIteratorType pitype >
150 typedef EntityIterator< codim, const GridPartFamily, IdIterator< codim, pitype, const GridPartFamily > >
IteratorType;
156 static const bool conforming = HostGridPartType::Traits::conforming;
164 template<
class CoordFunction >
184 template<
int codim >
186 :
public BaseType::template
Codim< codim >
209 template<
int codim >
210 typename Codim< codim >::IteratorType
213 return begin< codim, InteriorBorder_Partition >();
216 template<
int codim, PartitionIteratorType pitype >
217 typename Codim< codim >::template Partition< pitype >::IteratorType
223 template<
int codim >
224 typename Codim< codim >::IteratorType
227 return end< codim, InteriorBorder_Partition >();
230 template<
int codim, PartitionIteratorType pitype >
231 typename Codim< codim >::template Partition< pitype >::IteratorType
254 return hostGridPart().boundaryId( intersection.impl().hostIntersection() );
259 template<
class DataHandle,
class Data >
261 InterfaceType iftype, CommunicationDirection dir )
const
263 typedef CommDataHandleIF< DataHandle, Data > HostHandleType;
265 hostGridPart().communicate( handleWrapper, iftype, dir );
268 template<
class LocalFunction >
269 typename Codim< 0 >::EntityType
276 template <
class EntitySeed >
277 typename Codim< EntitySeed::codimension >::EntityType
285 template<
class Entity >
286 MakeableInterfaceObject< typename Codim< Entity::codimension >::EntityType >
291 typedef typename EntityType::Implementation Implementation;
292 typedef MakeableInterfaceObject< EntityType > EntityObj;
295 return EntityObj( Implementation( coordFunction_,
entity ) );
304 return coordFunction_.gridPart();
323 template<
int codim,
int dim,
class Gr
idFamily >
326 typedef Dune::Entity< codim, dim, GridFamily, GeoEntity >
EntityType;
332 return HostAccessType::gridEntity( entity.impl().hostEntity() );
341 template<
class CoordFunction,
int codim, PartitionIteratorType partition >
Definition: bindguard.hh:11
interface for local functions
Definition: localfunction.hh:77
Definition: deaditerator.hh:49
Definition: deaditerator.hh:158
Definition: entitysearch.hh:25
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
MetaTwistUtility forwards the twist calls to the TwistUtility of the underlying HostTwistUtility.
Definition: metatwistutility.hh:22
Definition: geogridpart.hh:167
Codim< codim >::template Partition< pitype >::IteratorType begin() const
Definition: geogridpart.hh:218
void communicate(CommDataHandleIF< DataHandle, Data > &handle, InterfaceType iftype, CommunicationDirection dir) const
Definition: geogridpart.hh:260
Codim< 0 >::EntityType exchangeGeometry(const typename Codim< 0 >::EntityType &entity, const LocalFunction &localCoordFunction) const
Definition: geogridpart.hh:270
IntersectionIteratorType ibegin(const typename Codim< 0 >::EntityType &entity) const
Definition: geogridpart.hh:242
const HostGridPartType & hostGridPart() const
Definition: geogridpart.hh:302
HostGridPartType & hostGridPart()
Definition: geogridpart.hh:308
int boundaryId(const IntersectionType &intersection) const
Definition: geogridpart.hh:252
const CoordFunctionType & coordFunction() const
Definition: geogridpart.hh:299
BaseType::IntersectionType IntersectionType
Definition: geogridpart.hh:181
GeoGridPart(const CoordFunctionType &coordFunction)
Definition: geogridpart.hh:189
Codim< codim >::IteratorType begin() const
Definition: geogridpart.hh:211
BaseType::CollectiveCommunicationType CollectiveCommunicationType
Definition: geogridpart.hh:182
BaseType::IntersectionIteratorType IntersectionIteratorType
Definition: geogridpart.hh:180
CoordFunction CoordFunctionType
Definition: geogridpart.hh:176
int level() const
Definition: geogridpart.hh:237
GridPartFamily::Traits::HostGridPartType HostGridPartType
Definition: geogridpart.hh:174
const GridType & grid() const
Definition: geogridpart.hh:194
Codim< EntitySeed::codimension >::EntityType entity(const EntitySeed &seed) const
Definition: geogridpart.hh:278
const IndexSetType & indexSet() const
Definition: geogridpart.hh:204
Codim< codim >::template Partition< pitype >::IteratorType end() const
Definition: geogridpart.hh:232
Codim< codim >::IteratorType end() const
Definition: geogridpart.hh:225
BaseType::GridType GridType
Definition: geogridpart.hh:178
BaseType::IndexSetType IndexSetType
Definition: geogridpart.hh:179
const CollectiveCommunicationType & comm() const
Definition: geogridpart.hh:257
GridType & grid()
Definition: geogridpart.hh:199
IntersectionIteratorType iend(const typename Codim< 0 >::EntityType &entity) const
Definition: geogridpart.hh:247
MakeableInterfaceObject< typename Codim< Entity::codimension >::EntityType > convert(const Entity &entity) const
Definition: geogridpart.hh:287
Definition: geogridpart.hh:63
static const int dimensionworld
Definition: geogridpart.hh:67
static const int dimension
Definition: geogridpart.hh:66
CoordFunction::RangeFieldType ctype
Definition: geogridpart.hh:64
Traits::HierarchicIterator HierarchicIterator
Definition: geogridpart.hh:108
GeoGridPartFamily< CoordFunction > GridPartFamily
Definition: geogridpart.hh:69
Traits::LeafIntersectionIterator LeafIntersectionIterator
Definition: geogridpart.hh:105
Traits::LevelIntersectionIterator LevelIntersectionIterator
Definition: geogridpart.hh:106
Definition: geogridpart.hh:43
GeoGridPartData(const CoordFunctionType &coordFunction)
Definition: geogridpart.hh:47
CoordFunction CoordFunctionType
Definition: geogridpart.hh:44
GeoGridPartData()=default
Definition: geogridpart.hh:72
GeoGridPartData< CoordFunction > ExtraData
Definition: geogridpart.hh:73
DeadIntersectionIterator< const GridPartFamily > IntersectionIteratorImplType
Definition: geogridpart.hh:89
DeadIntersection< const GridPartFamily > IntersectionImplType
Definition: geogridpart.hh:88
Dune::IntersectionIterator< const GridPartFamily, IntersectionIteratorImplType, IntersectionImplType > LeafIntersectionIterator
Definition: geogridpart.hh:94
Dune::IntersectionIterator< const GridPartFamily, IntersectionIteratorImplType, IntersectionImplType > LevelIntersectionIterator
Definition: geogridpart.hh:95
CoordFunctionType::GridPartType HostGridPartType
Definition: geogridpart.hh:76
Dune::Intersection< const GridPartFamily, IntersectionImplType > LevelIntersection
Definition: geogridpart.hh:92
Dune::EntityIterator< 0, const GridPartFamily, DeadIterator< typename Codim< 0 >::Entity > > HierarchicIterator
Definition: geogridpart.hh:97
Dune::Intersection< const GridPartFamily, IntersectionImplType > LeafIntersection
Definition: geogridpart.hh:91
CoordFunction CoordFunctionType
Definition: geogridpart.hh:74
Definition: geogridpart.hh:80
HostGridPartType::template Codim< codim >::LocalGeometryType LocalGeometry
Definition: geogridpart.hh:82
Dune::Geometry< dimension - codim, dimensionworld, const GridPartFamily, GeoGeometry > Geometry
Definition: geogridpart.hh:81
Dune::Entity< codim, dimension, const GridPartFamily, GeoEntity > Entity
Definition: geogridpart.hh:84
HostGridPartType::GridType::template Codim< codim >::EntitySeed EntitySeed
Definition: geogridpart.hh:85
Definition: geogridpart.hh:103
Definition: geogridpart.hh:115
IdIndexSet< const GridPartFamily > IndexSetType
Definition: geogridpart.hh:127
static const InterfaceType indexSetInterfaceType
Definition: geogridpart.hh:130
GeoGridPart< CoordFunction > GridPartType
Definition: geogridpart.hh:116
GeoGridPartFamily< CoordFunction > GridPartFamily
Definition: geogridpart.hh:117
IntersectionIterator< const GridPartFamily, IntersectionIteratorImplType, IntersectionImplType > IntersectionIteratorType
Definition: geogridpart.hh:135
GeoGridPartFamily< CoordFunction > GridFamily
Definition: geogridpart.hh:118
GridPartFamily::Traits::HostGridPartType HostGridPartType
Definition: geogridpart.hh:120
HostGridPartType::GridType GridType
Definition: geogridpart.hh:122
static const bool conforming
Definition: geogridpart.hh:156
GeoIntersectionIterator< const GridPartFamily > IntersectionIteratorImplType
Definition: geogridpart.hh:133
GeoIntersection< const GridPartFamily > IntersectionImplType
Definition: geogridpart.hh:132
HostGridPartType::CollectiveCommunicationType CollectiveCommunicationType
Definition: geogridpart.hh:154
MetaTwistUtility< typename HostGridPartType ::TwistUtilityType > TwistUtilityType
type of twist utility
Definition: geogridpart.hh:125
static const PartitionIteratorType indexSetPartitionType
Definition: geogridpart.hh:129
Definition: geogridpart.hh:139
GridPartFamily::Traits::template Codim< codim >::Geometry GeometryType
Definition: geogridpart.hh:140
GridPartFamily::Traits::template Codim< codim >::EntitySeed EntitySeedType
Definition: geogridpart.hh:145
GridPartFamily::Traits::template Codim< codim >::Entity EntityType
Definition: geogridpart.hh:143
GridPartFamily::Traits::template Codim< codim >::LocalGeometry LocalGeometryType
Definition: geogridpart.hh:141
Definition: geogridpart.hh:149
EntityIterator< codim, const GridPartFamily, IdIterator< codim, pitype, const GridPartFamily > > IteratorType
Definition: geogridpart.hh:150
Definition: geogridpart.hh:187
Dune::Entity< codim, dim, GridFamily, GeoEntity > EntityType
Definition: geogridpart.hh:326
GridEntityAccess< typename EntityType::Implementation::HostEntityType > HostAccessType
Definition: geogridpart.hh:327
static const GridEntityType & gridEntity(const EntityType &entity)
Definition: geogridpart.hh:330
HostAccessType::GridEntityType GridEntityType
Definition: geogridpart.hh:328
Definition: geogridpart.hh:344
BaseType::GridPartType GridPartType
Definition: geogridpart.hh:349
EntitySearch(const GridPartType &gridPart)
Definition: geogridpart.hh:351
Definition: gridpart/geogridpart/datahandle.hh:22
Definition: gridpart/geogridpart/geometry.hh:57
Definition: geogridpart/intersection.hh:20
Definition: geogridpart/intersectioniterator.hh:22
Definition: idgridpart/indexset.hh:260
Definition: idgridpart/iterator.hh:21