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();
190 const CollectiveCommunication &
comm ()
const
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();
374 const CollectiveCommunication &
comm ()
const
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
CommunicationDirection
Define a type for communication direction parameter.
Definition: gridenums.hh:168
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
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
Definition: defaultgridview.hh:69
Definition: defaultgridview.hh:100
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
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
Specialize with 'true' if implementation guarantees conforming level grids. (default=false) ...
Definition: common/capabilities.hh:98
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
Traits::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: defaultgridview.hh:290
Definition: defaultgridview.hh:268
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: defaultgridview.hh:190
Specialize with 'true' if implementation guarantees a conforming leaf grid. (default=false) ...
Definition: common/capabilities.hh:107
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
Grid::template Codim< cd >::Geometry Geometry
Definition: defaultgridview.hh:253
Grid::Traits::template Codim< cd >::Entity Entity
Definition: defaultgridview.hh:249
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: defaultgridview.hh:307
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
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:84
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
Define types needed to iterate over entities of a given partition type.
Definition: defaultgridview.hh:60
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::template Codim< cd >::template Partition< pit >::LevelIterator Iterator
iterator over a given codim and partition type
Definition: defaultgridview.hh:65
Grid::Traits::LevelIntersection Intersection
type of the intersection
Definition: defaultgridview.hh:34
Codim Structure.
Definition: defaultgridview.hh:297
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
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
Grid::template Codim< cd >::template Partition< pit >::LeafIterator Iterator
iterator over a given codim and partition type
Definition: defaultgridview.hh:264
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:299
Definition: defaultgridview.hh:16
Grid::template Codim< cd >::LocalGeometry LocalGeometry
Definition: defaultgridview.hh:56
Definition: defaultgridview.hh:223
Include standard header files.
Definition: agrid.hh:59
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
A set of traits classes to store static information about grid implementation.
Traits::IndexSet IndexSet
type of the index set
Definition: defaultgridview.hh:284
Define types needed to iterate over entities of a given partition type.
Definition: defaultgridview.hh:259
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
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