3 #ifndef DUNE_DEFAULTGRIDVIEW_HH
4 #define DUNE_DEFAULTGRIDVIEW_HH
6 #include <dune/common/typetraits.hh>
7 #include <dune/common/exceptions.hh>
15 template<
class Gr
idImp, PartitionIteratorType pitype >
18 template<
class Gr
idImp, PartitionIteratorType pitype >
22 template<
class Gr
idImp, PartitionIteratorType pitype >
28 typedef typename remove_const<GridImp>::type
Grid;
31 typedef typename Grid :: Traits :: LevelIndexSet
IndexSet;
37 typedef typename Grid :: Traits :: LevelIntersectionIterator
46 typedef typename Grid :: Traits
59 template< PartitionIteratorType pit >
73 template<
class Gr
idImp, PartitionIteratorType pitype >
74 class DefaultLevelGridView
76 typedef DefaultLevelGridView< GridImp, pitype > ThisType;
110 : grid_( other.grid_ ),
111 level_( other.level_ )
115 ThisType &operator= (
const ThisType & other)
118 level_ = other.level_;
132 return grid().levelIndexSet( level_ );
138 return grid().size( level_, codim );
144 return grid().size( level_, type );
151 return grid().template lbegin< cd, pitype >( level_ );
155 template<
int cd, PartitionIteratorType pit >
158 return grid().template lbegin< cd, pit >( level_ );
165 return grid().template lend< cd, pitype >( level_ );
169 template<
int cd, PartitionIteratorType pit >
172 return grid().template lend< cd, pit >( level_ );
179 return entity.impl().ilevelbegin();
186 return entity.impl().ilevelend();
192 return grid().comm();
198 return grid().overlapSize(level_, codim);
204 return grid().ghostSize(level_, codim);
208 template<
class DataHandleImp,
class DataType >
213 return grid().communicate( data, iftype, dir, level_ );
222 template<
class Gr
idImp, PartitionIteratorType pitype >
227 typedef typename remove_const<GridImp>::type
Grid;
230 typedef typename Grid :: Traits :: LeafIndexSet
IndexSet;
236 typedef typename Grid :: Traits :: LeafIntersectionIterator
245 typedef typename Grid :: Traits
258 template <PartitionIteratorType pit >
272 template<
class Gr
idImp, PartitionIteratorType pitype >
273 class DefaultLeafGridView
275 typedef DefaultLeafGridView< GridImp, pitype > ThisType;
316 return grid().leafIndexSet();
322 return grid().size( codim );
328 return grid().size( type );
335 return grid().template leafbegin< cd, pitype >();
339 template<
int cd, PartitionIteratorType pit >
342 return grid().template leafbegin< cd, pit >();
349 return grid().template leafend< cd, pitype >();
353 template<
int cd, PartitionIteratorType pit >
356 return grid().template leafend< cd, pit >();
363 return entity.impl().ileafbegin();
370 return entity.impl().ileafend();
376 return grid().comm();
382 return grid().overlapSize(codim);
388 return grid().ghostSize(codim);
392 template<
class DataHandleImp,
class DataType >
397 return grid().communicate( data, iftype, dir );
int ghostSize(int codim) const
Return size of the ghost region for a given codim on the grid view.
Definition: defaultgridview.hh:202
Grid::Traits::template Codim< cd >::EntityPointer EntityPointer
Definition: defaultgridview.hh:251
void communicate(CommDataHandleIF< DataHandleImp, DataType > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: defaultgridview.hh:209
Grid::Traits::template Codim< cd >::template Partition< pitype >::LevelIterator Iterator
Definition: defaultgridview.hh:48
Grid::Traits::template Codim< cd >::EntityPointer EntityPointer
Definition: defaultgridview.hh:52
Definition: defaultgridview.hh:44
IntersectionIterator ibegin(const typename Codim< 0 >::Entity &entity) const
obtain begin intersection iterator with respect to this view
Definition: defaultgridview.hh:361
Codim< cd >::Iterator begin() const
obtain begin iterator for this view
Definition: defaultgridview.hh:149
Definition: defaultgridview.hh:19
Grid::Traits::template Codim< cd >::template Partition< pitype >::LeafIterator Iterator
Definition: defaultgridview.hh:247
Define types needed to iterate over entities of a given partition type.
Definition: defaultgridview.hh:259
Specialize with 'true' if implementation guarantees a conforming leaf grid. (default=false) ...
Definition: common/capabilities.hh:107
IntersectionIterator iend(const typename Codim< 0 >::Entity &entity) const
obtain end intersection iterator with respect to this view
Definition: defaultgridview.hh:368
int size(int codim) const
obtain number of entities in a given codimension
Definition: defaultgridview.hh:320
DefaultLevelGridViewTraits< GridImp, pitype > Traits
Definition: defaultgridview.hh:79
int overlapSize(int codim) const
Return size of the overlap region for a given codim on the grid view.
Definition: defaultgridview.hh:196
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: common/grid.hh:360
Codim< cd >::Iterator begin() const
obtain begin iterator for this view
Definition: defaultgridview.hh:333
DefaultLeafGridViewTraits< GridImp, pitype > Traits
Definition: defaultgridview.hh:278
Grid::template Codim< cd >::Geometry Geometry
Definition: defaultgridview.hh:54
Traits::Intersection Intersection
type of the intersection
Definition: defaultgridview.hh:88
int overlapSize(int codim) const
Return size of the overlap region for a given codim on the grid view.
Definition: defaultgridview.hh:380
Codim< cd >::template Partition< pit >::Iterator begin() const
obtain begin iterator for this view
Definition: defaultgridview.hh:340
Codim< cd >::template Partition< pit >::Iterator end() const
obtain end iterator for this view
Definition: defaultgridview.hh:170
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: defaultgridview.hh:374
Definition: defaultgridview.hh:100
Grid::template Codim< cd >::template Partition< pit >::LevelIterator Iterator
iterator over a given codim and partition type
Definition: defaultgridview.hh:65
Traits::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: defaultgridview.hh:290
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: defaultgridview.hh:190
const IndexSet & indexSet() const
obtain the index set
Definition: defaultgridview.hh:130
Grid::Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: defaultgridview.hh:240
remove_const< GridImp >::type Grid
type of the grid
Definition: defaultgridview.hh:227
Grid::Traits::LeafIndexSet IndexSet
type of the index set
Definition: defaultgridview.hh:230
remove_const< GridImp >::type Grid
type of the grid
Definition: defaultgridview.hh:28
IntersectionIterator iend(const typename Codim< 0 >::Entity &entity) const
obtain end intersection iterator with respect to this view
Definition: defaultgridview.hh:184
Codim< cd >::template Partition< pit >::Iterator end() const
obtain end iterator for this view
Definition: defaultgridview.hh:354
Grid::Traits::LeafIntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: defaultgridview.hh:237
const IndexSet & indexSet() const
obtain the index set
Definition: defaultgridview.hh:314
Define types needed to iterate over entities of a given partition type.
Definition: defaultgridview.hh:60
Grid::template Codim< cd >::Geometry Geometry
Definition: defaultgridview.hh:253
Grid::Traits::template Codim< cd >::Entity Entity
Definition: defaultgridview.hh:249
Grid::template Codim< cd >::template Partition< pit >::LeafIterator Iterator
iterator over a given codim and partition type
Definition: defaultgridview.hh:264
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: defaultgridview.hh:307
Definition: defaultgridview.hh:299
Traits::Grid Grid
type of the grid
Definition: defaultgridview.hh:281
Grid::Traits::LevelIntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: defaultgridview.hh:38
Definition: defaultgridview.hh:243
Definition: defaultgridview.hh:23
Traits::Grid Grid
type of the grid
Definition: defaultgridview.hh:82
Codim< cd >::Iterator end() const
obtain end iterator for this view
Definition: defaultgridview.hh:347
Grid::Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: defaultgridview.hh:41
Traits::Intersection Intersection
type of the intersection
Definition: defaultgridview.hh:287
Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: defaultgridview.hh:293
DefaultLeafGridView< GridImp, pitype > GridViewImp
Definition: defaultgridview.hh:224
Grid::Traits::template Codim< cd >::Entity Entity
Definition: defaultgridview.hh:50
int ghostSize(int codim) const
Return size of the ghost region for a given codim on the grid view.
Definition: defaultgridview.hh:386
Grid abstract base classThis class is the base class for all grid implementations. Although no virtual functions are used we call it abstract since its methods do not contain an implementation but forward to the methods of the derived class via the Barton-Nackman trick.
Definition: common/grid.hh:388
DefaultLeafGridView(const Grid &grid)
Definition: defaultgridview.hh:302
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: defaultgridview.hh:123
Traits::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: defaultgridview.hh:91
int size(const GeometryType &type) const
obtain number of entities with a given geometry type
Definition: defaultgridview.hh:142
Grid::Traits::LevelIntersection Intersection
type of the intersection
Definition: defaultgridview.hh:34
Codim Structure.
Definition: defaultgridview.hh:297
CommunicationDirection
Define a type for communication direction parameter.
Definition: gridenums.hh:168
Definition: defaultgridview.hh:69
Codim Structure.
Definition: defaultgridview.hh:98
Grid::Traits::LevelIndexSet IndexSet
type of the index set
Definition: defaultgridview.hh:31
void communicate(CommDataHandleIF< DataHandleImp, DataType > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: defaultgridview.hh:393
A set of traits classes to store static information about grid implementation.
Codim< cd >::template Partition< pit >::Iterator begin() const
obtain begin iterator for this view
Definition: defaultgridview.hh:156
IntersectionIterator ibegin(const typename Codim< 0 >::Entity &entity) const
obtain begin intersection iterator with respect to this view
Definition: defaultgridview.hh:177
Codim< cd >::Iterator end() const
obtain end iterator for this view
Definition: defaultgridview.hh:163
Grid::template Codim< cd >::LocalGeometry LocalGeometry
Definition: defaultgridview.hh:255
CommDataHandleIF describes the features of a data handle for communication in parallel runs using the...
Definition: datahandleif.hh:72
DefaultLevelGridView(const Grid &grid, int level)
Definition: defaultgridview.hh:102
Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: defaultgridview.hh:94
Definition: defaultgridview.hh:268
Definition: defaultgridview.hh:16
Grid::template Codim< cd >::LocalGeometry LocalGeometry
Definition: defaultgridview.hh:56
Specialize with 'true' if implementation guarantees conforming level grids. (default=false) ...
Definition: common/capabilities.hh:98
Definition: defaultgridview.hh:223
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:84
Traits::IndexSet IndexSet
type of the index set
Definition: defaultgridview.hh:85
int size(int codim) const
obtain number of entities in a given codimension
Definition: defaultgridview.hh:136
Grid::Traits::LeafIntersection Intersection
type of the intersection
Definition: defaultgridview.hh:233
Traits::IndexSet IndexSet
type of the index set
Definition: defaultgridview.hh:284
DefaultLevelGridView< GridImp, pitype > GridViewImp
Definition: defaultgridview.hh:25
int size(const GeometryType &type) const
obtain number of entities with a given geometry type
Definition: defaultgridview.hh:326