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." );
31 Entity dereference ()
const
33 DUNE_THROW( InvalidStateException,
"Trying to dereference a dead iterator." );
36 bool equals (
const DeadIterator & )
const
38 DUNE_THROW( InvalidStateException,
"Trying to compare a dead iterator." );
47 template<
class Gr
idFamily >
48 class DeadIntersection
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;
62 Entity inside ()
const
64 DUNE_THROW( InvalidStateException,
"Call to inside on dead intersection." );
67 Entity outside ()
const
69 DUNE_THROW( InvalidStateException,
"Call to outside on dead intersection." );
72 bool boundary ()
const
74 DUNE_THROW( InvalidStateException,
"Call to boundary on dead intersection." );
79 DUNE_THROW( InvalidStateException,
"Call to conforming on dead intersection." );
82 bool neighbor ()
const
84 DUNE_THROW( InvalidStateException,
"Call to neighbor on dead intersection." );
87 int boundaryId ()
const
89 DUNE_THROW( InvalidStateException,
"Call to boundaryId on dead intersection." );
92 size_t boundarySegmentIndex ()
const
94 DUNE_THROW( InvalidStateException,
"Call to boundarySegmentIndex on dead intersection." );
97 const LocalGeometry &geometryInInside ()
const
99 DUNE_THROW( InvalidStateException,
"Call to geometryInInside on dead intersection." );
102 const LocalGeometry &geometryInOutside ()
const
104 DUNE_THROW( InvalidStateException,
"Call to geometryInOutside on dead intersection." );
107 const Geometry &geometry ()
const
109 DUNE_THROW( InvalidStateException,
"Call to geometry on dead intersection." );
114 DUNE_THROW( InvalidStateException,
"Call to type on dead intersection." );
117 int indexInInside ()
const
119 DUNE_THROW( InvalidStateException,
"Call to indexInInside on dead intersection." );
122 int indexInOutside ()
const
124 DUNE_THROW( InvalidStateException,
"Call to indexInOutside on dead intersection." );
127 FieldVector< ctype, dimensionworld >
128 integrationOuterNormal (
const FieldVector< ctype, dimension-1 > &local )
const
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 >
140 unitOuterNormal (
const FieldVector< ctype, dimension-1 > &local )
const
142 DUNE_THROW( InvalidStateException,
"Call to unitOuterNormal on dead intersection." );
145 FieldVector< ctype, dimensionworld > centerUnitOuterNormal ()
const
147 DUNE_THROW( InvalidStateException,
"Call to centerUnitOuterNormal on dead intersection." );
156 template<
class Gr
idFamily >
157 class DeadIntersectionIterator
159 typedef DeadIntersectionIterator< GridFamily > ThisType;
161 typedef DeadIntersection< const GridFamily > DeadIntersectionType;
166 DeadIntersectionIterator ()
169 bool equals (
const ThisType &other )
const
176 DUNE_THROW( InvalidStateException,
"Trying to increment a dead intersection iterator." );
179 const Intersection &dereference ()
const
181 DUNE_THROW( InvalidStateException,
"Trying to dereference a dead intersection iterator." );
static constexpr int codimension
Know your own codimension.
Definition: entity.hh:106
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: intersection.hh:164
@ conforming
Output conforming data.
Definition: common.hh:73
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:132
#define DUNE_THROW(E, m)
Definition: exceptions.hh:218
constexpr auto equals(T1 &&t1, T2 &&t2)
Equality comparison.
Definition: hybridutilities.hh:587
Dune namespace.
Definition: alignedallocator.hh:13