1 #ifndef DUNE_SPGRID_GRIDVIEW_HH
2 #define DUNE_SPGRID_GRIDVIEW_HH
7 #include <dune/grid/common/gridview.hh>
26 template<
class ViewTraits >
39 typedef typename std::remove_const< G >::type
Grid;
42 typedef Dune::Intersection< const Grid, SPIntersection< const Grid > >
Intersection;
60 template< PartitionIteratorType pit >
64 typedef Dune::EntityIterator< codim, const Grid, IteratorImpl >
Iterator;
80 template<
class ViewTraits >
85 template<
class,
int,
template<
int >
class,
class >
friend class SPGrid;
89 typedef typename ViewTraits::Grid
Grid;
90 typedef typename ViewTraits::IndexSet
IndexSet;
99 :
public ViewTraits::template
Codim< codim >
103 typedef std::pair< IndexSet, unsigned int > IndexSetPair;
116 int size (
int codim )
const;
117 int size (
const GeometryType &type )
const;
122 template<
int codim >
123 typename Codim< codim >::Iterator
124 begin (
const unsigned int sweepDir = 0 )
const;
126 template<
int codim >
128 end (
const unsigned int sweepDir = 0 )
const;
130 template<
int codim, PartitionIteratorType pitype >
132 begin (
const unsigned int sweepDir = 0 )
const;
134 template<
int codim, PartitionIteratorType pitype >
136 end (
const unsigned int sweepDir = 0 )
const;
141 template<
class Entity >
145 template<
class Entity >
154 template<
class DataHandle,
class Data >
156 communicate ( CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir )
const
166 std::shared_ptr< IndexSet > indexSet_;
174 template<
class ViewTraits >
178 return gridLevel().grid();
182 template<
class ViewTraits >
190 template<
class ViewTraits >
193 return indexSet().size( codim );
197 template<
class ViewTraits >
200 return indexSet().size( type );
204 template<
class ViewTraits >
208 DUNE_THROW( NotImplemented,
"overlapSize not implemented for codim > 0." );
209 int volume = gridLevel().template partition< OverlapFront_Partition >().volume();
210 volume -= gridLevel().template partition< InteriorBorder_Partition >().volume();
215 template<
class ViewTraits >
219 DUNE_THROW( NotImplemented,
"ghostSize not implemented for codim > 0." );
220 return gridLevel().template partition< Ghost_Partition >().volume();
224 template<
class ViewTraits >
225 template<
int codim >
230 typename IteratorImpl::Begin begin;
231 return IteratorImpl( gridLevel(), gridLevel().
template partition< All_Partition >(), begin, sweepDir );
235 template<
class ViewTraits >
236 template<
int codim >
241 typename IteratorImpl::End end;
242 return IteratorImpl( gridLevel(), gridLevel().
template partition< All_Partition >(), end, sweepDir );
246 template<
class ViewTraits >
247 template<
int codim, PartitionIteratorType pitype >
252 typename IteratorImpl::Begin begin;
253 return IteratorImpl( gridLevel(), gridLevel().
template partition< pitype >(), begin, sweepDir );
257 template<
class ViewTraits >
258 template<
int codim, PartitionIteratorType pitype >
263 typename IteratorImpl::End end;
264 return IteratorImpl( gridLevel(), gridLevel().
template partition< pitype >(), end, sweepDir );
268 template<
class ViewTraits >
276 template<
class ViewTraits >
284 template<
class ViewTraits >
285 template<
class Entity >
290 return Impl( entity.impl().entityInfo(),
typename Impl::Begin() );
294 template<
class ViewTraits >
295 template<
class Entity >
300 return Impl( entity.impl().entityInfo(),
typename Impl::End() );
304 template<
class ViewTraits >
309 return Impl( gridLevel(), face,
typename Impl::Begin() );
313 template<
class ViewTraits >
318 return Impl( gridLevel(), face,
typename Impl::End() );
Definition: iostream.hh:7
Definition: extensions/superentityiterator.hh:20
Definition: boundarysegmentiterator.hh:29
Definition: communication.hh:77
structured, parallel DUNE grid
Definition: grid.hh:136
Definition: gridlevel.hh:35
static const int numFaces
Definition: gridlevel.hh:47
Definition: gridview.hh:82
friend class SPGridView
Definition: gridview.hh:86
IntersectionIterator iend(const typename Codim< 0 >::Entity &entity) const
Definition: gridview.hh:278
Codim< codim >::template Partition< pitype >::Iterator end(const unsigned int sweepDir=0) const
int overlapSize(const int codim) const
Definition: gridview.hh:205
const CollectiveCommunication & comm() const
Definition: gridview.hh:152
Codim< codim >::template Partition< pitype >::Iterator begin(const unsigned int sweepDir=0) const
ViewTraits::CollectiveCommunication CollectiveCommunication
Definition: gridview.hh:93
SPCommunication< Grid, CommDataHandleIF< DataHandle, Data > > communicate(CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: gridview.hh:156
ViewTraits::BoundarySegmentIterator BoundarySegmentIterator
Definition: gridview.hh:92
ViewTraits::IndexSet IndexSet
Definition: gridview.hh:90
Codim< codim >::Iterator begin(const unsigned int sweepDir=0) const
ViewTraits::IntersectionIterator IntersectionIterator
Definition: gridview.hh:91
IntersectionIterator ibegin(const typename Codim< 0 >::Entity &entity) const
Definition: gridview.hh:270
ViewTraits::Grid Grid
Definition: gridview.hh:89
const IndexSet & indexSet() const
Definition: gridview.hh:184
int ghostSize(const int codim) const
Definition: gridview.hh:216
Codim< Entity::codimension >::SuperEntityIterator superEntityEnd(const Entity &entity) const
const GridLevel & gridLevel() const
Definition: gridview.hh:161
BoundarySegmentIterator boundarySegmentBegin(int face=0) const
Definition: gridview.hh:306
BoundarySegmentIterator boundarySegmentEnd(int face=GridLevel::numFaces-1) const
Definition: gridview.hh:315
void update(const GridLevel &gridLevel)
Definition: gridview.hh:163
SPGridLevel< Grid > GridLevel
Definition: gridview.hh:95
Codim< codim >::Iterator end(const unsigned int sweepDir=0) const
Codim< Entity::codimension >::SuperEntityIterator superEntityBegin(const Entity &entity) const
int size(int codim) const
Definition: gridview.hh:191
const Grid & grid() const
Definition: gridview.hh:176
Definition: gridview.hh:36
SPGridView< SPGridViewTraits< G > > GridViewImp
Definition: gridview.hh:37
static const bool conforming
Definition: gridview.hh:50
std::remove_const< G >::type Grid
Definition: gridview.hh:39
Grid::CollectiveCommunication CollectiveCommunication
Definition: gridview.hh:48
Dune::IntersectionIterator< const Grid, SPIntersectionIterator< const Grid >, SPIntersection< const Grid > > IntersectionIterator
Definition: gridview.hh:43
Dune::IntersectionIterator< const Grid, SPBoundarySegmentIterator< const Grid >, SPIntersection< const Grid > > BoundarySegmentIterator
Definition: gridview.hh:46
static const bool hasBoundarySegmentIterator
Definition: gridview.hh:45
SPIndexSet< const Grid > IndexSet
Definition: gridview.hh:41
Dune::Intersection< const Grid, SPIntersection< const Grid > > Intersection
Definition: gridview.hh:42
Definition: gridview.hh:54
Partition< All_Partition >::Iterator Iterator
Definition: gridview.hh:67
static const bool hasSuperEntityIterator
Definition: gridview.hh:70
Partition< All_Partition >::IteratorImpl IteratorImpl
Definition: gridview.hh:68
Grid::Traits::template Codim< codim >::Entity Entity
Definition: gridview.hh:55
Grid::Traits::template Codim< codim >::Geometry Geometry
Definition: gridview.hh:57
Dune::SuperEntityIterator< const Grid, SPSuperEntityIterator > SuperEntityIterator
Definition: gridview.hh:71
Grid::Traits::template Codim< codim >::LocalGeometry LocalGeometry
Definition: gridview.hh:58
Definition: gridview.hh:62
Dune::EntityIterator< codim, const Grid, IteratorImpl > Iterator
Definition: gridview.hh:64
SPPartitionIterator< codim, const Grid > IteratorImpl
Definition: gridview.hh:63
Definition: gridview.hh:100
Definition: indexset.hh:19
Definition: intersection.hh:37
Definition: intersectioniterator.hh:18
Definition: iterator.hh:19
Definition: spgrid/superentityiterator.hh:20
interface classes for superentity iterators