36 class PolyhedralGridView
38 typedef PolyhedralGridView< dim, dimworld, coord_t, defaultpitype > This;
43 typedef typename Traits::Grid Grid;
44 typedef typename Traits::IndexSet IndexSet;
45 typedef typename Traits::Intersection Intersection;
46 typedef typename Traits::IntersectionIterator IntersectionIterator;
48 using Communication =
typename Traits::Communication;
49 using CollectiveCommunication = Communication;
52 :
public Traits::template
Codim< codim >
55 static const bool conforming = Traits :: conforming;
56 static const PartitionIteratorType pitype = Traits :: pitype;
58 explicit PolyhedralGridView (
const Grid &grid,
const int level = 0 )
64 const Grid &grid ()
const
70 const IndexSet &indexSet ()
const
72 return grid().leafIndexSet();
75 bool isConforming()
const {
return bool(conforming); }
77 int size (
int codim )
const
79 return grid().size( codim );
82 int size (
const GeometryType &type )
const
84 return grid().size( type );
90 return begin< codim, defaultpitype >();
93 template<
int codim, PartitionIteratorType pit >
97 return Impl( grid().extraData(),
true );
100 template<
int codim >
103 return end< codim, defaultpitype >();
106 template<
int codim, PartitionIteratorType pit >
110 return Impl( grid().extraData(),
false );
115 typedef typename Traits::IntersectionIteratorImpl IntersectionIteratorImpl;
116 return IntersectionIteratorImpl( grid().extraData(), entity.seed(),
true);
121 typedef typename Traits::IntersectionIteratorImpl IntersectionIteratorImpl;
122 return IntersectionIteratorImpl( grid().extraData(), entity.seed(),
false);
125 const CollectiveCommunication &comm ()
const
127 return grid().comm();
130 int overlapSize (
int codim )
const
132 return grid().overlapSize( codim );
135 int ghostSize (
int codim )
const
137 return grid().ghostSize( codim );
140 template<
class DataHandle,
class Data >
141 void communicate ( CommDataHandleIF< DataHandle, Data > ,
143 CommunicationDirection )
const