1#ifndef DUNE_FEM_GRIDPART_COMMON_DEADINTERSECTIONITERATOR_HH
2#define DUNE_FEM_GRIDPART_COMMON_DEADINTERSECTIONITERATOR_HH
6#include <dune/grid/common/entityiterator.hh>
7#include <dune/grid/common/intersection.hh>
8#include <dune/grid/common/intersectioniterator.hh>
28 DUNE_THROW( InvalidStateException,
"Trying to increment a dead iterator." );
33 DUNE_THROW( InvalidStateException,
"Trying to dereference a dead iterator." );
38 DUNE_THROW( InvalidStateException,
"Trying to compare a dead iterator." );
47 template<
class Gr
idFamily >
50 typedef typename std::remove_const< GridFamily >::type::Traits Traits;
53 typedef typename std::remove_const< GridFamily >::type::ctype
ctype;
55 static const int dimension = std::remove_const< GridFamily >::type::dimension;
56 static const int dimensionworld = std::remove_const< GridFamily >::type::dimensionworld;
58 typedef typename Traits::template Codim< 0 >::Entity
Entity;
59 typedef typename Traits::template Codim< 1 >::Geometry
Geometry;
60 typedef typename Traits::template Codim< 1 >::LocalGeometry
LocalGeometry;
64 DUNE_THROW( InvalidStateException,
"Call to inside on dead intersection." );
69 DUNE_THROW( InvalidStateException,
"Call to outside on dead intersection." );
74 DUNE_THROW( InvalidStateException,
"Call to boundary on dead intersection." );
79 DUNE_THROW( InvalidStateException,
"Call to conforming on dead intersection." );
84 DUNE_THROW( InvalidStateException,
"Call to neighbor on dead intersection." );
89 DUNE_THROW( InvalidStateException,
"Call to boundaryId on dead intersection." );
94 DUNE_THROW( InvalidStateException,
"Call to boundarySegmentIndex on dead intersection." );
99 DUNE_THROW( InvalidStateException,
"Call to geometryInInside on dead intersection." );
104 DUNE_THROW( InvalidStateException,
"Call to geometryInOutside on dead intersection." );
109 DUNE_THROW( InvalidStateException,
"Call to geometry on dead intersection." );
114 DUNE_THROW( InvalidStateException,
"Call to type on dead intersection." );
119 DUNE_THROW( InvalidStateException,
"Call to indexInInside on dead intersection." );
124 DUNE_THROW( InvalidStateException,
"Call to indexInOutside on dead intersection." );
127 FieldVector< ctype, dimensionworld >
130 DUNE_THROW( InvalidStateException,
"Call to integrationOuterNormal on dead intersection." );
133 FieldVector< ctype, dimensionworld >
134 outerNormal (
const FieldVector< ctype, dimension-1 > &local )
const
136 DUNE_THROW( InvalidStateException,
"Call to outerNormal on dead intersection." );
139 FieldVector< ctype, dimensionworld >
142 DUNE_THROW( InvalidStateException,
"Call to unitOuterNormal on dead intersection." );
147 DUNE_THROW( InvalidStateException,
"Call to centerUnitOuterNormal on dead intersection." );
156 template<
class Gr
idFamily >
164 typedef Dune::Intersection< const GridFamily, DeadIntersectionType >
Intersection;
176 DUNE_THROW( InvalidStateException,
"Trying to increment a dead intersection iterator." );
181 DUNE_THROW( InvalidStateException,
"Trying to dereference a dead intersection iterator." );
Definition: bindguard.hh:11
Definition: deaditerator.hh:21
bool equals(const DeadIterator &) const
Definition: deaditerator.hh:36
Entity dereference() const
Definition: deaditerator.hh:31
void increment()
Definition: deaditerator.hh:26
E Entity
Definition: deaditerator.hh:22
static const int codimension
Definition: deaditerator.hh:24
Definition: deaditerator.hh:49
bool neighbor() const
Definition: deaditerator.hh:82
Traits::template Codim< 1 >::Geometry Geometry
Definition: deaditerator.hh:59
int indexInInside() const
Definition: deaditerator.hh:117
static const int dimension
Definition: deaditerator.hh:55
FieldVector< ctype, dimensionworld > unitOuterNormal(const FieldVector< ctype, dimension-1 > &local) const
Definition: deaditerator.hh:140
static const int dimensionworld
Definition: deaditerator.hh:56
FieldVector< ctype, dimensionworld > outerNormal(const FieldVector< ctype, dimension-1 > &local) const
Definition: deaditerator.hh:134
GeometryType type() const
Definition: deaditerator.hh:112
int boundaryId() const
Definition: deaditerator.hh:87
size_t boundarySegmentIndex() const
Definition: deaditerator.hh:92
bool boundary() const
Definition: deaditerator.hh:72
Entity inside() const
Definition: deaditerator.hh:62
Traits::template Codim< 0 >::Entity Entity
Definition: deaditerator.hh:58
std::remove_const< GridFamily >::type::ctype ctype
Definition: deaditerator.hh:53
const LocalGeometry & geometryInInside() const
Definition: deaditerator.hh:97
bool conforming() const
Definition: deaditerator.hh:77
Entity outside() const
Definition: deaditerator.hh:67
const Geometry & geometry() const
Definition: deaditerator.hh:107
int indexInOutside() const
Definition: deaditerator.hh:122
Traits::template Codim< 1 >::LocalGeometry LocalGeometry
Definition: deaditerator.hh:60
const LocalGeometry & geometryInOutside() const
Definition: deaditerator.hh:102
FieldVector< ctype, dimensionworld > centerUnitOuterNormal() const
Definition: deaditerator.hh:145
FieldVector< ctype, dimensionworld > integrationOuterNormal(const FieldVector< ctype, dimension-1 > &local) const
Definition: deaditerator.hh:128
Definition: deaditerator.hh:158
void increment()
Definition: deaditerator.hh:174
bool equals(const ThisType &other) const
Definition: deaditerator.hh:169
const Intersection & dereference() const
Definition: deaditerator.hh:179
Dune::Intersection< const GridFamily, DeadIntersectionType > Intersection
Definition: deaditerator.hh:164
DeadIntersectionIterator()
Definition: deaditerator.hh:166