3 #ifndef DUNE_ALUGRID_MACROGRIDVIEW_HH
4 #define DUNE_ALUGRID_MACROGRIDVIEW_HH
8 #include <dune/common/version.hh>
9 #include <dune/common/exceptions.hh>
11 #include <dune/grid/common/capabilities.hh>
12 #include <dune/grid/common/gridview.hh>
17 template<
class Gr
idImp, PartitionIteratorType pitype >
20 template<
class Gr
idImp, PartitionIteratorType pitype >
26 typedef typename std::remove_const<GridImp>::type
Grid;
29 typedef typename Grid :: Traits :: LevelIndexSet
IndexSet;
35 typedef typename Grid :: Traits :: LevelIntersectionIterator
44 typedef typename Grid :: Traits
50 #if ! DUNE_VERSION_NEWER(DUNE_GRID,2,5)
60 template< PartitionIteratorType pit >
70 enum {
conforming = Capabilities :: isLevelwiseConforming< Grid > :: v };
74 template<
class Gr
idImp, PartitionIteratorType pitype >
144 int size (
const GeometryType &type )
const
153 return grid().template lbegin< cd, pitype >(
level_ );
157 template<
int cd, PartitionIteratorType pit >
160 return grid().template lbegin< cd, pit >(
level_ );
167 return grid().template lend< cd, pitype >(
level_ );
171 template<
int cd, PartitionIteratorType pit >
174 return grid().template lend< cd, pit >(
level_ );
181 assert( entity.level() ==
level_ );
182 return grid().ilevelbegin( entity );
189 assert( entity.level() ==
level_ );
190 return grid().ilevelend( entity );
196 return grid().comm();
212 template<
class DataHandleImp,
class DataType >
213 void communicate ( CommDataHandleIF< DataHandleImp, DataType > &data,
214 InterfaceType iftype,
215 CommunicationDirection dir )
const
217 return grid().communicate( data, iftype, dir,
level_ );
229 return Grid::getRealImplementation( entity ).master();
235 return Grid::getRealImplementation( entity ).macroId();
241 return Grid::getRealImplementation( entity ).weight();
248 return Grid::getRealImplementation( intersection ).weight();
254 return weight( *intersectionIterator );
Definition: alu3dinclude.hh:80
Definition: macrogridview.hh:76
Codim< cd >::template Partition< pit >::Iterator end() const
obtain end iterator for this view
Definition: macrogridview.hh:172
int weight(const typename Codim< 0 > ::Entity &entity) const
return weight associated with the given macro entity
Definition: macrogridview.hh:239
Traits ::IndexSet IndexSet
type of the index set
Definition: macrogridview.hh:88
Traits ::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: macrogridview.hh:94
const CollectiveCommunication & comm() const
obtain collective communication object
Definition: macrogridview.hh:194
int ghostSize(int codim) const
Return size of the ghost region for a given codim on the grid view.
Definition: macrogridview.hh:206
const IndexSet & indexSet() const
obtain the index set
Definition: macrogridview.hh:132
int macroId(const typename Codim< 0 > ::Entity &entity) const
return unique id of macro entity for usage with graph partitioning software
Definition: macrogridview.hh:233
Codim< cd >::template Partition< pit >::Iterator begin() const
obtain begin iterator for this view
Definition: macrogridview.hh:158
MacroGridViewTraits< GridImp, pitype > Traits
Definition: macrogridview.hh:82
Codim< cd >::Iterator begin() const
obtain begin iterator for this view
Definition: macrogridview.hh:151
const Grid & grid() const
obtain a const reference to the underlying hierarchic grid
Definition: macrogridview.hh:125
int weight(const IntersectionIterator &intersectionIterator) const
Definition: macrogridview.hh:252
@ dimension
The dimension of the grid.
Definition: macrogridview.hh:112
int overlapSize(int codim) const
Return size of the overlap region for a given codim on the grid view.
Definition: macrogridview.hh:200
Grid::ctype ctype
type used for coordinates in grid
Definition: macrogridview.hh:109
const int level_
Definition: macrogridview.hh:259
Traits ::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: macrogridview.hh:97
void communicate(CommDataHandleIF< DataHandleImp, DataType > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: macrogridview.hh:213
IntersectionIterator ibegin(const typename Codim< 0 > ::Entity &entity) const
obtain begin intersection iterator with respect to this view
Definition: macrogridview.hh:179
MacroGridView(const Grid &grid)
Definition: macrogridview.hh:119
Traits::Grid Grid
type of the grid
Definition: macrogridview.hh:85
Codim< cd >::Iterator end() const
obtain end iterator for this view
Definition: macrogridview.hh:165
int size(const GeometryType &type) const
obtain number of entities with a given geometry type
Definition: macrogridview.hh:144
@ conforming
Export if this grid view is conforming */.
Definition: macrogridview.hh:105
int size(int codim) const
obtain number of entities in a given codimension
Definition: macrogridview.hh:138
int master(const typename Codim< 0 > ::Entity &entity) const
return master rank for entities with partitionType != InteriorEntity
Definition: macrogridview.hh:227
IntersectionIterator iend(const typename Codim< 0 > ::Entity &entity) const
obtain end intersection iterator with respect to this view
Definition: macrogridview.hh:187
const Grid * grid_
Definition: macrogridview.hh:258
Traits ::Intersection Intersection
type of the intersection
Definition: macrogridview.hh:91
int weight(const Intersection &intersection) const
return weight associated with the macro intersection, i.e. the graph edge between the two neighboring...
Definition: macrogridview.hh:246
@ dimensionworld
The dimension of the world the grid lives in.
Definition: macrogridview.hh:116
Definition: macrogridview.hh:22
MacroGridView< GridImp, pitype > GridViewImp
Definition: macrogridview.hh:23
Grid ::Traits ::LevelIntersection Intersection
type of the intersection
Definition: macrogridview.hh:32
Grid ::Traits ::LevelIndexSet IndexSet
type of the index set
Definition: macrogridview.hh:29
Grid ::Traits ::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: macrogridview.hh:39
std::remove_const< GridImp >::type Grid
type of the grid
Definition: macrogridview.hh:26
@ conforming
Definition: macrogridview.hh:70
Grid ::Traits ::LevelIntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: macrogridview.hh:36
Definition: macrogridview.hh:43
Grid ::template Codim< cd >::Geometry Geometry
Definition: macrogridview.hh:55
Grid ::Traits ::template Codim< cd >::EntityPointer EntityPointer
Definition: macrogridview.hh:52
Grid ::Traits ::template Codim< cd >::template Partition< pitype >::LevelIterator Iterator
Definition: macrogridview.hh:46
Grid ::template Codim< cd >::LocalGeometry LocalGeometry
Definition: macrogridview.hh:57
Grid ::Traits ::template Codim< cd >::Entity Entity
Definition: macrogridview.hh:48
Define types needed to iterate over entities of a given partition type.
Definition: macrogridview.hh:62
Grid ::template Codim< cd >::template Partition< pit >::LevelIterator Iterator
iterator over a given codim and partition type
Definition: macrogridview.hh:66
Codim Structure.
Definition: macrogridview.hh:101