dune-alugrid  3.0.0
intersectioniteratorwrapper.hh
Go to the documentation of this file.
1 #ifndef DUNE_INTERSECTIONITERATORWRAPPER_HH
2 #define DUNE_INTERSECTIONITERATORWRAPPER_HH
3 
4 #include <dune/common/version.hh>
5 #if !DUNE_VERSION_NEWER( DUNE_GRID, 3, 0 )
6 #include <dune/common/nullptr.hh>
7 #endif //#if !DUNE_VERSION_NEWER( DUNE_GRID, 3, 0 )
8 
9 #include <dune/grid/common/intersectioniterator.hh>
11 
14 
20 namespace Dune {
21 
24 template <class GridImp, class IntersectionIteratorImpl>
26 {
27  enum { dim = GridImp :: dimension };
28  enum { dimworld = GridImp :: dimensionworld };
29 
31 
32  typedef IntersectionIteratorImpl IntersectionIteratorImp;
33 
34  typedef ALU3DSPACE ALUMemoryProvider< IntersectionIteratorImpl > IntersectionIteratorProviderType ;
35 public:
37  enum { dimension = dim };
39  enum { dimensionworld = dimworld };
40 
42  typedef typename GridImp :: ctype ctype;
43 
45  typedef typename GridImp::template Codim<0>::Entity Entity;
46 #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
47  typedef typename GridImp::template Codim<0>::EntityPointer EntityPointer;
49 #endif // #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
50 
52  typedef typename GridImp::template Codim<1>::Geometry Geometry;
54  typedef typename GridImp::template Codim<1>::LocalGeometry LocalGeometry;
55 
57  typedef FieldVector<ctype , dimworld> NormalType;
58 
59  typedef typename IntersectionIteratorImpl::Twists Twists;
60  typedef typename Twists::Twist Twist;
61 
63 
65  template <class EntityImp>
66  IntersectionIteratorWrapper(const GridImp& grid, const EntityImp & en, int wLevel , bool end)
67  : itPtr_()
68  {
69  if(end)
70  it().done( en );
71  else
72  it().first( en, wLevel, grid.conformingRefinement(), grid.ghostCellsEnabled() );
73  }
74 
75  operator bool () const { return bool( itPtr_ ); }
76 
78  bool equals ( const ThisType &other ) const
79  {
80  return (itPtr_ && other.itPtr_ ) ? it().equals( other.it() ) : itPtr_ == other.itPtr_;
81  }
82 
84  void increment ()
85  {
86  // if the shared pointer is unique we can increment
87  if( itPtr_.unique() )
88  {
89  it().increment();
90  }
91  else
92  {
93  // otherwise make a copy and assign the same intersection
94  // and then increment
95  ALU3DSPACE SharedPointer< IntersectionIteratorImp > copy( itPtr_ );
96  itPtr_.invalidate();
97  it().assign( *copy );
98  it().increment();
99  }
100  }
101 
103  Entity outside() const { return it().outside(); }
104 
106  Entity inside() const { return it().inside(); }
107 
110  bool boundary () const { return it().boundary(); }
111 
113  bool neighbor () const { return it().neighbor(); }
114 
116  int boundaryId () const { return it().boundaryId(); }
117 
119  size_t boundarySegmentIndex() const { return it().boundarySegmentIndex(); }
120 
126  {
127  return it().geometryInInside();
128  }
129 
135  {
136  return it().geometry();
137  }
138 
140  GeometryType type () const
141  {
142  return it().type();
143  }
144 
147  int indexInInside () const
148  {
149  return it().indexInInside();
150  }
151 
156  {
157  return it().geometryInOutside();
158  }
159 
162  int indexInOutside () const
163  {
164  return it().indexInOutside();
165  }
166 
168  Twist twistInInside() const { return it().twistInInside(); }
169 
171  Twist twistInOutside() const { return it().twistInOutside(); }
172 
175  const NormalType unitOuterNormal ( const FieldVector< ctype, dim-1 > &local ) const
176  {
177  return it().unitOuterNormal( local );
178  }
179 
183  {
184  const ReferenceElement<ctype, dim-1> & refElement =
185  ReferenceElements<ctype, dim-1>::general( type() );
186  return unitOuterNormal(refElement.position(0,0));
187  }
188 
191  const NormalType outerNormal ( const FieldVector< ctype, dim-1 > &local ) const
192  {
193  return it().outerNormal( local );
194  }
195 
198  const NormalType integrationOuterNormal ( const FieldVector< ctype, dim-1 > &local ) const
199  {
200  return it().integrationOuterNormal( local );
201  }
202 
204  int level () const { return it().level(); }
205 
207  bool conforming () const { return it().conforming(); }
208 
210  IntersectionIteratorImp & it() { return *itPtr_; }
211  const IntersectionIteratorImp & it() const { return *itPtr_; }
212 
214  int weight() const
215  {
216  return it().weight();
217  }
218 
219 private:
220  mutable ALU3DSPACE SharedPointer< IntersectionIteratorImp > itPtr_;
221 }; // end class IntersectionIteratorWrapper
222 
223 template <class GridImp>
225 : public IntersectionIteratorWrapper<GridImp,typename GridImp::LeafIntersectionIteratorImp>
226 {
229 public:
231 
233  template <class EntityImp>
234  LeafIntersectionWrapper(const GridImp& grid, const EntityImp & en, int wLevel , bool end )
235  : BaseType( grid, en, wLevel, end )
236  {
237  }
238 
241  : BaseType(org)
242  {
243  }
244 
245 };
246 
249 template <class GridImp>
251 {
254 
255 public:
256  typedef Dune::Intersection< GridImp, IntersectionImp > Intersection;
257 
259  enum { dimension = GridImp :: dimension };
261  enum { dimensionworld = GridImp :: dimensionworld };
262 
264  typedef typename GridImp :: ctype ctype;
265 
267  typedef typename GridImp::template Codim<0>::Entity Entity;
268 #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
269  typedef typename GridImp::template Codim<0>::EntityPointer EntityPointer;
271 #endif // #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
272 
274  typedef typename GridImp::template Codim<1>::Geometry Geometry;
276  typedef typename GridImp::template Codim<1>::LocalGeometry LocalGeometry;
277 
279  typedef FieldVector<ctype , dimensionworld> NormalType;
280 
283 
285  template <class EntityImp>
286  LeafIntersectionIteratorWrapper(const GridImp& grid, const EntityImp & en, int wLevel , bool end )
287  : intersection_( IntersectionImp( grid, en, wLevel, end) )
288  {}
289 
292  : intersection_( IntersectionImp( org.impl() ) )
293  {}
294 
297  {
298  impl() = org.impl();
299  return *this;
300  }
301 
303  const Intersection &dereference () const
304  {
305  return intersection_;
306  }
307 
309  bool equals (const ThisType & i) const { return impl().equals( i.impl() ); }
310 
312  void increment()
313  {
314  impl().increment();
315  }
316 protected:
317  // intersection object
319 
320  // return reference to real implementation
321  IntersectionImp& impl() { return GridImp :: getRealImplementation( intersection_ ); }
322  // return reference to real implementation
323  const IntersectionImp& impl() const { return GridImp :: getRealImplementation( intersection_ ); }
324 }; // end class IntersectionIteratorWrapper
325 
328 template <class GridImp>
330 : public IntersectionIteratorWrapper<GridImp,typename GridImp::LevelIntersectionIteratorImp>
331 {
334 public:
336 
338  template <class EntityImp>
339  LevelIntersectionWrapper(const GridImp& grid, const EntityImp & en, int wLevel , bool end )
340  : BaseType( grid, en, wLevel, end )
341  {
342  }
343 
346  : BaseType(org)
347  {
348  }
349 };
350 
353 template <class GridImp>
355 {
358 public:
359  typedef Dune::Intersection< GridImp, IntersectionImp > Intersection;
360 
362  enum { dimension = GridImp :: dimension };
364  enum { dimensionworld = GridImp :: dimensionworld };
365 
367  typedef typename GridImp :: ctype ctype;
368 
370  typedef typename GridImp::template Codim<0>::Entity Entity;
371 #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
372  typedef typename GridImp::template Codim<0>::EntityPointer EntityPointer;
374 #endif // #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
375 
377  typedef typename GridImp::template Codim<1>::Geometry Geometry;
379  typedef typename GridImp::template Codim<1>::LocalGeometry LocalGeometry;
380 
382  typedef FieldVector<ctype , dimensionworld> NormalType;
383 
385 
387  template <class EntityImp>
388  LevelIntersectionIteratorWrapper(const GridImp& grid, const EntityImp & en, int wLevel , bool end )
389  : intersection_( IntersectionImp( grid, en, wLevel, end ) )
390  {}
391 
394  : intersection_( IntersectionImp( org.impl() ) )
395  {}
396 
399  {
400  impl() = org.impl();
401  return *this;
402  }
403 
405  const Intersection &dereference () const
406  {
407  return intersection_;
408  }
409 
411  bool equals (const ThisType & i) const { return impl().equals( i.impl() ); }
412 
414  void increment()
415  {
416  impl().increment();
417  }
418 
419  // template <class,PartitionIteratorType> friend class MacroGridView; // specialize
420 protected:
421  // intersection object
423 
424  // return reference to real implementation
425  IntersectionImp& impl() { return GridImp :: getRealImplementation( intersection_ ); }
426  // return reference to real implementation
427  const IntersectionImp& impl() const { return GridImp :: getRealImplementation( intersection_ ); }
428 }; // end class IntersectionIteratorWrapper
429 
430 } // end namespace Dune
431 #endif
Dune::IntersectionIteratorWrapper::neighbor
bool neighbor() const
return true if across the intersection a neighbor on this level exists
Definition: intersectioniteratorwrapper.hh:113
Dune::LevelIntersectionIteratorWrapper::Geometry
GridImp::template Codim< 1 >::Geometry Geometry
type of intersectionGlobal
Definition: intersectioniteratorwrapper.hh:377
Dune::IntersectionIteratorWrapper::level
int level() const
return level of iterator
Definition: intersectioniteratorwrapper.hh:204
Dune::LeafIntersectionIteratorWrapper::NormalType
FieldVector< ctype, dimensionworld > NormalType
type of normal vector
Definition: intersectioniteratorwrapper.hh:279
Dune::IntersectionIteratorWrapper::dimensionworld
Definition: intersectioniteratorwrapper.hh:39
Dune::LevelIntersectionIteratorWrapper::LevelIntersectionIteratorWrapper
LevelIntersectionIteratorWrapper(const GridImp &grid, const EntityImp &en, int wLevel, bool end)
constructor called from the ibegin and iend method
Definition: intersectioniteratorwrapper.hh:388
Dune::IntersectionIteratorWrapper::boundarySegmentIndex
size_t boundarySegmentIndex() const
return the boundary segment index
Definition: intersectioniteratorwrapper.hh:119
Dune::LeafIntersectionIteratorWrapper::dereference
const Intersection & dereference() const
return reference to intersection
Definition: intersectioniteratorwrapper.hh:303
Dune::IntersectionIteratorWrapper::ctype
GridImp ::ctype ctype
define type used for coordinates in grid module
Definition: intersectioniteratorwrapper.hh:42
Dune::IntersectionIteratorWrapper::inside
Entity inside() const
access entity where iteration started
Definition: intersectioniteratorwrapper.hh:106
Dune::IntersectionIteratorWrapper::Twist
Twists::Twist Twist
Definition: intersectioniteratorwrapper.hh:60
Dune::LeafIntersectionWrapper::LeafIntersectionWrapper
LeafIntersectionWrapper(const GridImp &grid, const EntityImp &en, int wLevel, bool end)
constructor called from the ibegin and iend method
Definition: intersectioniteratorwrapper.hh:234
Dune::LevelIntersectionIteratorWrapper::LevelIntersectionIteratorWrapper
LevelIntersectionIteratorWrapper()
Definition: intersectioniteratorwrapper.hh:384
Dune::LeafIntersectionIteratorWrapper::intersection_
Intersection intersection_
Definition: intersectioniteratorwrapper.hh:318
Dune::LeafIntersectionWrapper::LeafIntersectionWrapper
LeafIntersectionWrapper()
Definition: intersectioniteratorwrapper.hh:230
memory.hh
Dune::LeafIntersectionIteratorWrapper::impl
const IntersectionImp & impl() const
Definition: intersectioniteratorwrapper.hh:323
Dune::LevelIntersectionWrapper
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:329
Dune::LeafIntersectionIteratorWrapper::Geometry
GridImp::template Codim< 1 >::Geometry Geometry
type of intersectionGlobal
Definition: intersectioniteratorwrapper.hh:274
Dune::IntersectionIteratorWrapper::weight
int weight() const
return weight associated with graph edge between the neighboring elements
Definition: intersectioniteratorwrapper.hh:214
Dune::IntersectionIteratorWrapper::twistInOutside
Twist twistInOutside() const
twist of the face seen from the outer element
Definition: intersectioniteratorwrapper.hh:171
Dune::IntersectionIteratorWrapper::outerNormal
const NormalType outerNormal(const FieldVector< ctype, dim-1 > &local) const
Definition: intersectioniteratorwrapper.hh:191
Dune::ALUMemoryProvider
Definition: 3d/grid.hh:82
Dune::LeafIntersectionWrapper
Definition: intersectioniteratorwrapper.hh:224
Dune::LevelIntersectionIteratorWrapper::ctype
GridImp ::ctype ctype
define type used for coordinates in grid module
Definition: intersectioniteratorwrapper.hh:367
Dune::LeafIntersectionIteratorWrapper::LocalGeometry
GridImp::template Codim< 1 >::LocalGeometry LocalGeometry
type of intersection*Local
Definition: intersectioniteratorwrapper.hh:276
Dune::IntersectionIteratorWrapper::Twists
IntersectionIteratorImpl::Twists Twists
Definition: intersectioniteratorwrapper.hh:59
Dune::LevelIntersectionIteratorWrapper::Entity
GridImp::template Codim< 0 >::Entity Entity
Entity type.
Definition: intersectioniteratorwrapper.hh:370
Dune::IntersectionIteratorWrapper::boundary
bool boundary() const
Definition: intersectioniteratorwrapper.hh:110
Dune::IntersectionIteratorWrapper::it
const IntersectionIteratorImp & it() const
Definition: intersectioniteratorwrapper.hh:211
Dune::LevelIntersectionIteratorWrapper::equals
bool equals(const ThisType &i) const
the equality method
Definition: intersectioniteratorwrapper.hh:411
Dune::IntersectionIteratorWrapper
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:25
Dune::LeafIntersectionIteratorWrapper::LeafIntersectionIteratorWrapper
LeafIntersectionIteratorWrapper(const ThisType &org)
The copy constructor.
Definition: intersectioniteratorwrapper.hh:291
Dune::LeafIntersectionIteratorWrapper::EntityPointer
GridImp::template Codim< 0 >::EntityPointer EntityPointer
type of EntityPointer
Definition: intersectioniteratorwrapper.hh:270
Dune::LeafIntersectionIteratorWrapper::dimensionworld
Definition: intersectioniteratorwrapper.hh:261
Dune::IntersectionIteratorWrapper::integrationOuterNormal
const NormalType integrationOuterNormal(const FieldVector< ctype, dim-1 > &local) const
Definition: intersectioniteratorwrapper.hh:198
Dune::LevelIntersectionIteratorWrapper::EntityPointer
GridImp::template Codim< 0 >::EntityPointer EntityPointer
type of EntityPointer
Definition: intersectioniteratorwrapper.hh:373
Dune::LevelIntersectionIteratorWrapper::operator=
ThisType & operator=(const ThisType &org)
the f*cking assignment operator
Definition: intersectioniteratorwrapper.hh:398
Dune::IntersectionIteratorWrapper::Entity
GridImp::template Codim< 0 >::Entity Entity
Entity type.
Definition: intersectioniteratorwrapper.hh:45
alu3dinclude.hh
Dune::LevelIntersectionIteratorWrapper::intersection_
Intersection intersection_
Definition: intersectioniteratorwrapper.hh:422
Dune::IntersectionIteratorWrapper::equals
bool equals(const ThisType &other) const
the equality method
Definition: intersectioniteratorwrapper.hh:78
Dune::IntersectionIteratorWrapper::geometry
Geometry geometry() const
Definition: intersectioniteratorwrapper.hh:134
Dune::LeafIntersectionIteratorWrapper::equals
bool equals(const ThisType &i) const
the equality method
Definition: intersectioniteratorwrapper.hh:309
macrogridview.hh
Dune::IntersectionIteratorWrapper::NormalType
FieldVector< ctype, dimworld > NormalType
type of normal vector
Definition: intersectioniteratorwrapper.hh:57
Dune::LevelIntersectionIteratorWrapper::LevelIntersectionIteratorWrapper
LevelIntersectionIteratorWrapper(const ThisType &org)
The copy constructor.
Definition: intersectioniteratorwrapper.hh:393
Dune::IntersectionIteratorWrapper::increment
void increment()
increment iterator
Definition: intersectioniteratorwrapper.hh:84
Dune::LevelIntersectionIteratorWrapper::increment
void increment()
increment iterator
Definition: intersectioniteratorwrapper.hh:414
Dune::LeafIntersectionIteratorWrapper::ctype
GridImp ::ctype ctype
define type used for coordinates in grid module
Definition: intersectioniteratorwrapper.hh:264
Dune::LevelIntersectionIteratorWrapper::dimension
Definition: intersectioniteratorwrapper.hh:362
Dune::LevelIntersectionWrapper::LevelIntersectionWrapper
LevelIntersectionWrapper(const GridImp &grid, const EntityImp &en, int wLevel, bool end)
constructor called from the ibegin and iend method
Definition: intersectioniteratorwrapper.hh:339
Dune::IntersectionIteratorWrapper::indexInInside
int indexInInside() const
Definition: intersectioniteratorwrapper.hh:147
Dune::LeafIntersectionIteratorWrapper::dimension
Definition: intersectioniteratorwrapper.hh:259
Dune::LeafIntersectionIteratorWrapper::Intersection
Dune::Intersection< GridImp, IntersectionImp > Intersection
Definition: intersectioniteratorwrapper.hh:256
Dune::LevelIntersectionIteratorWrapper::Intersection
Dune::Intersection< GridImp, IntersectionImp > Intersection
Definition: intersectioniteratorwrapper.hh:359
Dune::LevelIntersectionIteratorWrapper::impl
const IntersectionImp & impl() const
Definition: intersectioniteratorwrapper.hh:427
Dune::IntersectionIteratorWrapper::boundaryId
int boundaryId() const
return information about the Boundary
Definition: intersectioniteratorwrapper.hh:116
ALU3DSPACE
#define ALU3DSPACE
Definition: alu3dinclude.hh:24
Dune::IntersectionIteratorWrapper::indexInOutside
int indexInOutside() const
Definition: intersectioniteratorwrapper.hh:162
Dune::LeafIntersectionWrapper::LeafIntersectionWrapper
LeafIntersectionWrapper(const ThisType &org)
The copy constructor.
Definition: intersectioniteratorwrapper.hh:240
Dune::IntersectionIteratorWrapper::Geometry
GridImp::template Codim< 1 >::Geometry Geometry
type of intersectionGlobal
Definition: intersectioniteratorwrapper.hh:52
Dune::IntersectionIteratorWrapper::dimension
Definition: intersectioniteratorwrapper.hh:37
Dune::LeafIntersectionIteratorWrapper
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:250
Dune::IntersectionIteratorWrapper::LocalGeometry
GridImp::template Codim< 1 >::LocalGeometry LocalGeometry
type of intersection*Local
Definition: intersectioniteratorwrapper.hh:54
Dune::LevelIntersectionIteratorWrapper::LocalGeometry
GridImp::template Codim< 1 >::LocalGeometry LocalGeometry
type of intersection*Local
Definition: intersectioniteratorwrapper.hh:379
Dune::LevelIntersectionIteratorWrapper::dimensionworld
Definition: intersectioniteratorwrapper.hh:364
Dune::IntersectionIteratorWrapper::unitOuterNormal
const NormalType unitOuterNormal(const FieldVector< ctype, dim-1 > &local) const
Definition: intersectioniteratorwrapper.hh:175
Dune::IntersectionIteratorWrapper::centerUnitOuterNormal
const NormalType centerUnitOuterNormal() const
Definition: intersectioniteratorwrapper.hh:182
Dune::LeafIntersectionIteratorWrapper::increment
void increment()
increment iterator
Definition: intersectioniteratorwrapper.hh:312
Dune::LeafIntersectionIteratorWrapper::LeafIntersectionIteratorWrapper
LeafIntersectionIteratorWrapper()
default constructor
Definition: intersectioniteratorwrapper.hh:282
Dune::IntersectionIteratorWrapper::IntersectionIteratorWrapper
IntersectionIteratorWrapper(const GridImp &grid, const EntityImp &en, int wLevel, bool end)
constructor called from the ibegin and iend method
Definition: intersectioniteratorwrapper.hh:66
Dune::IntersectionIteratorWrapper::conforming
bool conforming() const
return true if intersection is conform (i.e. only one neighbor)
Definition: intersectioniteratorwrapper.hh:207
Dune::LeafIntersectionIteratorWrapper::impl
IntersectionImp & impl()
Definition: intersectioniteratorwrapper.hh:321
Dune::LevelIntersectionIteratorWrapper
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:354
Dune::LeafIntersectionIteratorWrapper::LeafIntersectionIteratorWrapper
LeafIntersectionIteratorWrapper(const GridImp &grid, const EntityImp &en, int wLevel, bool end)
constructor called from the ibegin and iend method
Definition: intersectioniteratorwrapper.hh:286
Dune::IntersectionIteratorWrapper::it
IntersectionIteratorImp & it()
returns reference to underlying intersection iterator implementation
Definition: intersectioniteratorwrapper.hh:210
Dune::LeafIntersectionIteratorWrapper::Entity
GridImp::template Codim< 0 >::Entity Entity
Entity type.
Definition: intersectioniteratorwrapper.hh:267
Dune::IntersectionIteratorWrapper::EntityPointer
GridImp::template Codim< 0 >::EntityPointer EntityPointer
type of EntityPointer
Definition: intersectioniteratorwrapper.hh:48
Dune::LevelIntersectionWrapper::LevelIntersectionWrapper
LevelIntersectionWrapper(const ThisType &org)
The copy constructor.
Definition: intersectioniteratorwrapper.hh:345
Dune::LeafIntersectionIteratorWrapper::operator=
ThisType & operator=(const ThisType &org)
the f*cking assignment operator
Definition: intersectioniteratorwrapper.hh:296
Dune::IntersectionIteratorWrapper::twistInInside
Twist twistInInside() const
twist of the face seen from the inner element
Definition: intersectioniteratorwrapper.hh:168
Dune::IntersectionIteratorWrapper::IntersectionIteratorWrapper
IntersectionIteratorWrapper()
Definition: intersectioniteratorwrapper.hh:62
Dune::LevelIntersectionIteratorWrapper::impl
IntersectionImp & impl()
Definition: intersectioniteratorwrapper.hh:425
Dune::LevelIntersectionIteratorWrapper::NormalType
FieldVector< ctype, dimensionworld > NormalType
type of normal vector
Definition: intersectioniteratorwrapper.hh:382
Dune::LevelIntersectionWrapper::LevelIntersectionWrapper
LevelIntersectionWrapper()
Definition: intersectioniteratorwrapper.hh:335
Dune::LevelIntersectionIteratorWrapper::dereference
const Intersection & dereference() const
return reference to intersection
Definition: intersectioniteratorwrapper.hh:405
Dune
Definition: alu3dinclude.hh:79
Dune::IntersectionIteratorWrapper::type
GeometryType type() const
obtain the type of reference element for this intersection
Definition: intersectioniteratorwrapper.hh:140
Dune::IntersectionIteratorWrapper::geometryInOutside
LocalGeometry geometryInOutside() const
Definition: intersectioniteratorwrapper.hh:155
Dune::IntersectionIteratorWrapper::geometryInInside
LocalGeometry geometryInInside() const
Definition: intersectioniteratorwrapper.hh:125
Dune::IntersectionIteratorWrapper::outside
Entity outside() const
access neighbor
Definition: intersectioniteratorwrapper.hh:103