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
60 template< PartitionIteratorType pit >
70 enum {
conforming = Capabilities :: isLevelwiseConforming< Grid > :: v };
74 template<
class Gr
idImp, PartitionIteratorType pitype >
118 return grid().levelIndexSet( level_ );
124 return grid().size( level_, codim );
128 int size (
const GeometryType &type )
const
130 return grid().size( level_, type );
137 return grid().template lbegin< cd, pitype >( level_ );
141 template<
int cd, PartitionIteratorType pit >
144 return grid().template lbegin< cd, pit >( level_ );
151 return grid().template lend< cd, pitype >( level_ );
155 template<
int cd, PartitionIteratorType pit >
158 return grid().template lend< cd, pit >( level_ );
165 return grid().ilevelbegin( entity );
172 return grid().ilevelend( entity );
178 return grid().comm();
184 return grid().overlapSize(level_, codim);
190 return grid().ghostSize(level_, codim);
194 template<
class DataHandle,
class Data >
195 typename Grid::LevelCommunication
communicate ( CommDataHandleIF< DataHandle, Data > &data,
196 InterfaceType iftype,
197 CommunicationDirection dir )
const
199 return grid().communicate( data, iftype, dir, level_ );
205 return grid().template twists< cd >( type );
214 template<
class Gr
idImp, PartitionIteratorType pitype >
219 typedef typename std::remove_const<GridImp>::type
Grid;
222 typedef typename Grid :: Traits :: LeafIndexSet
IndexSet;
228 typedef typename Grid :: Traits :: LeafIntersectionIterator
238 typedef typename Twists::Twist
Twist;
240 typedef typename Grid :: Traits
251 template <PartitionIteratorType pit >
261 enum {
conforming = Capabilities :: isLeafwiseConforming< Grid > :: v };
265 template<
class Gr
idImp, PartitionIteratorType pitype >
309 return grid().leafIndexSet();
315 return grid().size( codim );
319 int size (
const GeometryType &type )
const
321 return grid().size( type );
328 return grid().template leafbegin< cd, pitype >();
332 template<
int cd, PartitionIteratorType pit >
335 return grid().template leafbegin< cd, pit >();
342 return grid().template leafend< cd, pitype >();
346 template<
int cd, PartitionIteratorType pit >
349 return grid().template leafend< cd, pit >();
356 return grid().ileafbegin( entity );
363 return grid().ileafend( entity );
369 return grid().comm();
375 return grid().overlapSize(codim);
381 return grid().ghostSize(codim);
385 template<
class DataHandle,
class Data >
386 typename Grid::LeafCommunication
communicate ( CommDataHandleIF< DataHandle, Data > &data,
387 InterfaceType iftype,
388 CommunicationDirection dir )
const
390 return grid().communicate( data, iftype, dir );
396 return grid().template twists< cd >( type );
Definition: alu3dinclude.hh:63
Definition: gridview.hh:76
int size(int codim) const
obtain number of entities in a given codimension
Definition: gridview.hh:122
Traits::Grid Grid
type of the grid
Definition: gridview.hh:83
int overlapSize(int codim) const
Return size of the overlap region for a given codim on the grid view.
Definition: gridview.hh:182
int ghostSize(int codim) const
Return size of the ghost region for a given codim on the grid view.
Definition: gridview.hh:188
Codim< cd >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:149
IntersectionIterator iend(const typename Codim< 0 > ::Entity &entity) const
obtain end intersection iterator with respect to this view
Definition: gridview.hh:170
ALU3dLevelGridView(const Grid &grid, int level)
Definition: gridview.hh:103
Codim< cd >::template Partition< pit >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:156
const IndexSet & indexSet() const
obtain the index set
Definition: gridview.hh:116
@ conforming
Definition: gridview.hh:101
Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridview.hh:95
ALU3dLevelGridViewTraits< GridImp, pitype > Traits
Definition: gridview.hh:80
Codim< cd >::template Partition< pit >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:142
int size(const GeometryType &type) const
obtain number of entities with a given geometry type
Definition: gridview.hh:128
Codim< cd >::Twists twists(GeometryType type) const
Definition: gridview.hh:203
Traits::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridview.hh:92
Traits::Intersection Intersection
type of the intersection
Definition: gridview.hh:89
IntersectionIterator ibegin(const typename Codim< 0 > ::Entity &entity) const
obtain begin intersection iterator with respect to this view
Definition: gridview.hh:163
Codim< cd >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:135
Traits::IndexSet IndexSet
type of the index set
Definition: gridview.hh:86
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: gridview.hh:176
Grid::LevelCommunication communicate(CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: gridview.hh:195
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: gridview.hh:109
Definition: gridview.hh:267
IntersectionIterator ibegin(const typename Codim< 0 > ::Entity &entity) const
obtain begin intersection iterator with respect to this view
Definition: gridview.hh:354
Codim< cd >::Twists twists(GeometryType type) const
Definition: gridview.hh:394
Traits::Intersection Intersection
type of the intersection
Definition: gridview.hh:280
const IndexSet & indexSet() const
obtain the index set
Definition: gridview.hh:307
Grid::LeafCommunication communicate(CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: gridview.hh:386
Traits::Grid Grid
type of the grid
Definition: gridview.hh:274
ALU3dLeafGridViewTraits< GridImp, pitype > Traits
Definition: gridview.hh:271
int size(int codim) const
obtain number of entities in a given codimension
Definition: gridview.hh:313
int overlapSize(int codim) const
Return size of the overlap region for a given codim on the grid view.
Definition: gridview.hh:373
Traits::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridview.hh:283
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: gridview.hh:300
ALU3dLeafGridView(const Grid &grid)
Definition: gridview.hh:295
IntersectionIterator iend(const typename Codim< 0 > ::Entity &entity) const
obtain end intersection iterator with respect to this view
Definition: gridview.hh:361
int size(const GeometryType &type) const
obtain number of entities with a given geometry type
Definition: gridview.hh:319
Codim< cd >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:340
int ghostSize(int codim) const
Return size of the ghost region for a given codim on the grid view.
Definition: gridview.hh:379
Codim< cd >::template Partition< pit >::Iterator end() const
obtain end iterator for this view
Definition: gridview.hh:347
Codim< cd >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:326
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: gridview.hh:367
@ conforming
Definition: gridview.hh:292
Codim< cd >::template Partition< pit >::Iterator begin() const
obtain begin iterator for this view
Definition: gridview.hh:333
Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridview.hh:286
Traits::IndexSet IndexSet
type of the index set
Definition: gridview.hh:277
Definition: gridview.hh:24
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
@ conforming
Definition: gridview.hh:70
Grid::Traits::LevelIntersection Intersection
type of the intersection
Definition: gridview.hh:34
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
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:57
Grid::template Codim< cd >::Geometry Geometry
Definition: gridview.hh:55
Grid::Traits::template Codim< cd >::Entity Entity
Definition: gridview.hh:53
Grid::Traits::template Codim< cd >::Twists Twists
Definition: gridview.hh:46
Twists::Twist Twist
Definition: gridview.hh:47
Define types needed to iterate over entities of a given partition type.
Definition: gridview.hh:62
Grid::template Codim< cd >::template Partition< pit >::LevelIterator Iterator
iterator over a given codim and partition type
Definition: gridview.hh:66
Codim Structure.
Definition: gridview.hh:99
Definition: gridview.hh:215
Grid::Traits::LeafIndexSet IndexSet
type of the index set
Definition: gridview.hh:222
std::remove_const< GridImp >::type Grid
type of the grid
Definition: gridview.hh:219
Grid::Traits::LeafIntersection Intersection
type of the intersection
Definition: gridview.hh:225
Grid::Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridview.hh:232
ALU3dLeafGridView< GridImp, pitype > GridViewImp
Definition: gridview.hh:216
Grid::Traits::LeafIntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridview.hh:229
@ conforming
Definition: gridview.hh:261
Definition: gridview.hh:236
Grid::Traits::template Codim< cd >::template Partition< pitype >::LeafIterator Iterator
Definition: gridview.hh:242
Grid::Traits::template Codim< cd >::Twists Twists
Definition: gridview.hh:237
Grid::template Codim< cd >::Geometry Geometry
Definition: gridview.hh:246
Twists::Twist Twist
Definition: gridview.hh:238
Grid::template Codim< cd >::LocalGeometry LocalGeometry
Definition: gridview.hh:248
Grid::Traits::template Codim< cd >::Entity Entity
Definition: gridview.hh:244
Define types needed to iterate over entities of a given partition type.
Definition: gridview.hh:253
Grid::template Codim< cd >::template Partition< pit >::LeafIterator Iterator
iterator over a given codim and partition type
Definition: gridview.hh:257
Codim Structure.
Definition: gridview.hh:290