1 #ifndef DUNE_ALUGRID_3D_GRIDVIEW_HH
2 #define DUNE_ALUGRID_3D_GRIDVIEW_HH
6 #include <dune/common/version.hh>
7 #include <dune/common/exceptions.hh>
9 #include <dune/grid/common/capabilities.hh>
10 #include <dune/grid/common/gridview.hh>
15 template<
class Gr
idImp, PartitionIteratorType pitype >
16 class ALU3dLevelGridView;
18 template<
class Gr
idImp, PartitionIteratorType pitype >
19 class ALU3dLeafGridView;
22 template<
class Gr
idImp, PartitionIteratorType pitype >
28 typedef typename std::remove_const<GridImp>::type
Grid;
31 typedef typename Grid :: Traits :: LevelIndexSet
IndexSet;
37 typedef typename Grid :: Traits :: LevelIntersectionIterator
47 typedef typename Twists::Twist
Twist;
49 typedef typename Grid :: Traits
54 #if ! DUNE_VERSION_NEWER(DUNE_GRID,2,5)
64 template< PartitionIteratorType pit >
74 enum {
conforming = Capabilities :: isLevelwiseConforming< Grid > :: v };
78 template<
class Gr
idImp, PartitionIteratorType pitype >
122 return grid().levelIndexSet( level_ );
128 return grid().size( level_, codim );
132 int size (
const GeometryType &type )
const
134 return grid().size( level_, type );
141 return grid().template lbegin< cd, pitype >( level_ );
145 template<
int cd, PartitionIteratorType pit >
148 return grid().template lbegin< cd, pit >( level_ );
155 return grid().template lend< cd, pitype >( level_ );
159 template<
int cd, PartitionIteratorType pit >
162 return grid().template lend< cd, pit >( level_ );
169 return grid().ilevelbegin( entity );
176 return grid().ilevelend( entity );
182 return grid().comm();
188 return grid().overlapSize(level_, codim);
194 return grid().ghostSize(level_, codim);
198 template<
class DataHandle,
class Data >
199 typename Grid::LevelCommunication
communicate ( CommDataHandleIF< DataHandle, Data > &data,
200 InterfaceType iftype,
201 CommunicationDirection dir )
const
203 return grid().communicate( data, iftype, dir, level_ );
209 return grid().template twists< cd >( type );
218 template<
class Gr
idImp, PartitionIteratorType pitype >
223 typedef typename std::remove_const<GridImp>::type
Grid;
226 typedef typename Grid :: Traits :: LeafIndexSet
IndexSet;
232 typedef typename Grid :: Traits :: LeafIntersectionIterator
242 typedef typename Twists::Twist
Twist;
244 typedef typename Grid :: Traits
249 #if ! DUNE_VERSION_NEWER(DUNE_GRID,2,5)
259 template <PartitionIteratorType pit >
269 enum {
conforming = Capabilities :: isLeafwiseConforming< Grid > :: v };
273 template<
class Gr
idImp, PartitionIteratorType pitype >
317 return grid().leafIndexSet();
323 return grid().size( codim );
327 int size (
const GeometryType &type )
const
329 return grid().size( type );
336 return grid().template leafbegin< cd, pitype >();
340 template<
int cd, PartitionIteratorType pit >
343 return grid().template leafbegin< cd, pit >();
350 return grid().template leafend< cd, pitype >();
354 template<
int cd, PartitionIteratorType pit >
357 return grid().template leafend< cd, pit >();
364 return grid().ileafbegin( entity );
371 return grid().ileafend( entity );
377 return grid().comm();
383 return grid().overlapSize(codim);
389 return grid().ghostSize(codim);
393 template<
class DataHandle,
class Data >
394 typename Grid::LeafCommunication
communicate ( CommDataHandleIF< DataHandle, Data > &data,
395 InterfaceType iftype,
396 CommunicationDirection dir )
const
398 return grid().communicate( data, iftype, dir );
404 return grid().template twists< cd >( type );
Definition: alu3dinclude.hh:80
Definition: gridview.hh:80
Codim< cd >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:139
int size(int codim) const
obtain number of entities in a given codimension
Definition: gridview.hh:126
Traits::Grid Grid
type of the grid
Definition: gridview.hh:87
int overlapSize(int codim) const
Return size of the overlap region for a given codim on the grid view.
Definition: gridview.hh:186
Traits ::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridview.hh:99
int ghostSize(int codim) const
Return size of the ghost region for a given codim on the grid view.
Definition: gridview.hh:192
IntersectionIterator iend(const typename Codim< 0 > ::Entity &entity) const
obtain end intersection iterator with respect to this view
Definition: gridview.hh:174
Traits ::Intersection Intersection
type of the intersection
Definition: gridview.hh:93
ALU3dLevelGridView(const Grid &grid, int level)
Definition: gridview.hh:107
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: gridview.hh:180
Codim< cd >::template Partition< pit >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:146
@ conforming
Definition: gridview.hh:105
Codim< cd >::template Partition< pit >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:160
ALU3dLevelGridViewTraits< GridImp, pitype > Traits
Definition: gridview.hh:84
Codim< cd >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:153
const IndexSet & indexSet() const
obtain the index set
Definition: gridview.hh:120
int size(const GeometryType &type) const
obtain number of entities with a given geometry type
Definition: gridview.hh:132
Codim< cd >::Twists twists(GeometryType type) const
Definition: gridview.hh:207
Traits ::IndexSet IndexSet
type of the index set
Definition: gridview.hh:90
IntersectionIterator ibegin(const typename Codim< 0 > ::Entity &entity) const
obtain begin intersection iterator with respect to this view
Definition: gridview.hh:167
Traits ::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridview.hh:96
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: gridview.hh:113
Grid::LevelCommunication communicate(CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: gridview.hh:199
Definition: gridview.hh:275
Codim< cd >::template Partition< pit >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:341
IntersectionIterator ibegin(const typename Codim< 0 > ::Entity &entity) const
obtain begin intersection iterator with respect to this view
Definition: gridview.hh:362
Codim< cd >::Twists twists(GeometryType type) const
Definition: gridview.hh:402
Grid::LeafCommunication communicate(CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: gridview.hh:394
Traits ::Intersection Intersection
type of the intersection
Definition: gridview.hh:288
Traits::Grid Grid
type of the grid
Definition: gridview.hh:282
Codim< cd >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:348
Traits ::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridview.hh:291
ALU3dLeafGridViewTraits< GridImp, pitype > Traits
Definition: gridview.hh:279
int size(int codim) const
obtain number of entities in a given codimension
Definition: gridview.hh:321
int overlapSize(int codim) const
Return size of the overlap region for a given codim on the grid view.
Definition: gridview.hh:381
Traits ::IndexSet IndexSet
type of the index set
Definition: gridview.hh:285
ALU3dLeafGridView(const Grid &grid)
Definition: gridview.hh:303
IntersectionIterator iend(const typename Codim< 0 > ::Entity &entity) const
obtain end intersection iterator with respect to this view
Definition: gridview.hh:369
int size(const GeometryType &type) const
obtain number of entities with a given geometry type
Definition: gridview.hh:327
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: gridview.hh:375
Codim< cd >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:334
Traits ::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridview.hh:294
int ghostSize(int codim) const
Return size of the ghost region for a given codim on the grid view.
Definition: gridview.hh:387
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: gridview.hh:308
const IndexSet & indexSet() const
obtain the index set
Definition: gridview.hh:315
@ conforming
Definition: gridview.hh:300
Codim< cd >::template Partition< pit >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:355
Definition: gridview.hh:24
Grid ::Traits ::LevelIntersection Intersection
type of the intersection
Definition: gridview.hh:34
std::remove_const< GridImp >::type Grid
type of the grid
Definition: gridview.hh:28
ALU3dLevelGridView< GridImp, pitype > GridViewImp
Definition: gridview.hh:25
Grid ::Traits ::LevelIndexSet IndexSet
type of the index set
Definition: gridview.hh:31
Grid ::Traits ::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridview.hh:41
Grid ::Traits ::LevelIntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridview.hh:38
@ conforming
Definition: gridview.hh:74
Definition: gridview.hh:45
Grid ::Traits ::template Codim< cd >::template Partition< pitype >::LevelIterator Iterator
Definition: gridview.hh:51
Grid ::template Codim< cd >::LocalGeometry LocalGeometry
Definition: gridview.hh:61
Grid ::Traits ::template Codim< cd >::EntityPointer EntityPointer
Definition: gridview.hh:56
Grid::Traits::template Codim< cd >::Twists Twists
Definition: gridview.hh:46
Grid ::Traits ::template Codim< cd >::Entity Entity
Definition: gridview.hh:53
Grid ::template Codim< cd >::Geometry Geometry
Definition: gridview.hh:59
Twists::Twist Twist
Definition: gridview.hh:47
Define types needed to iterate over entities of a given partition type.
Definition: gridview.hh:66
Grid ::template Codim< cd >::template Partition< pit >::LevelIterator Iterator
iterator over a given codim and partition type
Definition: gridview.hh:70
Codim Structure.
Definition: gridview.hh:103
Definition: gridview.hh:219
std::remove_const< GridImp >::type Grid
type of the grid
Definition: gridview.hh:223
Grid ::Traits ::LeafIntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridview.hh:233
Grid ::Traits ::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridview.hh:236
ALU3dLeafGridView< GridImp, pitype > GridViewImp
Definition: gridview.hh:220
Grid ::Traits ::LeafIndexSet IndexSet
type of the index set
Definition: gridview.hh:226
@ conforming
Definition: gridview.hh:269
Grid ::Traits ::LeafIntersection Intersection
type of the intersection
Definition: gridview.hh:229
Definition: gridview.hh:240
Grid ::Traits ::template Codim< cd >::EntityPointer EntityPointer
Definition: gridview.hh:251
Grid::Traits::template Codim< cd >::Twists Twists
Definition: gridview.hh:241
Grid ::Traits ::template Codim< cd >::template Partition< pitype >::LeafIterator Iterator
Definition: gridview.hh:246
Grid ::Traits ::template Codim< cd >::Entity Entity
Definition: gridview.hh:248
Twists::Twist Twist
Definition: gridview.hh:242
Grid ::template Codim< cd >::LocalGeometry LocalGeometry
Definition: gridview.hh:256
Grid ::template Codim< cd >::Geometry Geometry
Definition: gridview.hh:254
Define types needed to iterate over entities of a given partition type.
Definition: gridview.hh:261
Grid ::template Codim< cd >::template Partition< pit >::LeafIterator Iterator
iterator over a given codim and partition type
Definition: gridview.hh:265
Codim Structure.
Definition: gridview.hh:298