3 #ifndef DUNE_IDENTITYGRID_INTERSECTIONS_HH
4 #define DUNE_IDENTITYGRID_INTERSECTIONS_HH
16 template<
class Gr
id >
17 struct HostGridAccess;
28 template<
class Gr
idImp>
36 enum {dim=GridImp::dimension};
38 enum {dimworld=GridImp::dimensionworld};
41 typedef typename GridImp::ctype ctype;
43 typedef typename GridImp::HostGridType::template Codim<0>::Entity::LeafIntersectionIterator HostLeafIntersectionIterator;
47 typedef typename GridImp::template Codim<0>::EntityPointer
EntityPointer;
48 typedef typename GridImp::template Codim<1>::Geometry
Geometry;
49 typedef typename GridImp::template Codim<1>::LocalGeometry
LocalGeometry;
50 typedef typename GridImp::template Codim<0>::Entity
Entity;
54 const HostLeafIntersectionIterator& hostIterator)
55 : identityGrid_(identityGrid),
56 hostIterator_(hostIterator)
75 return hostIterator_->boundary();
84 return hostIterator_->centerUnitOuterNormal();
89 return hostIterator_->neighbor();
95 return hostIterator_->boundaryId();
100 return hostIterator_->boundarySegmentIndex();
105 return hostIterator_->conforming();
110 return hostIterator_->type();
134 return Geometry( hostIterator_->geometry() );
140 return hostIterator_->indexInInside();
146 return hostIterator_->indexInOutside();
151 FieldVector<ctype, GridImp::dimensionworld>
outerNormal (
const FieldVector<ctype, GridImp::dimension-1>& local)
const {
152 return hostIterator_->outerNormal(local);
156 FieldVector<ctype, GridImp::dimensionworld>
integrationOuterNormal (
const FieldVector<ctype, GridImp::dimension-1>& local)
const {
157 return hostIterator_->integrationOuterNormal(local);
161 FieldVector<ctype, GridImp::dimensionworld>
unitOuterNormal (
const FieldVector<ctype, GridImp::dimension-1>& local)
const {
162 return hostIterator_->unitOuterNormal(local);
171 const GridImp* identityGrid_;
173 HostLeafIntersectionIterator hostIterator_;
180 template<
class Gr
idImp>
188 enum {dim=GridImp::dimension};
190 enum {dimworld=GridImp::dimensionworld};
193 typedef typename GridImp::ctype ctype;
195 typedef typename GridImp::HostGridType::template Codim<0>::Entity::LevelIntersectionIterator HostLevelIntersectionIterator;
200 typedef typename GridImp::template Codim<1>::Geometry
Geometry;
202 typedef typename GridImp::template Codim<0>::Entity
Entity;
206 const HostLevelIntersectionIterator& hostIterator)
207 : identityGrid_(identityGrid), hostIterator_(hostIterator)
227 return hostIterator_->boundary();
236 return hostIterator_->centerUnitOuterNormal();
241 return hostIterator_->neighbor();
247 return hostIterator_->boundaryId();
252 return hostIterator_->boundarySegmentIndex();
257 return hostIterator_->conforming();
262 return hostIterator_->type();
286 return Geometry( hostIterator_->geometry() );
292 return hostIterator_->indexInInside();
298 return hostIterator_->indexInOutside();
303 FieldVector<ctype, dimworld>
outerNormal (
const FieldVector<ctype, dim-1>& local)
const {
304 return hostIterator_->outerNormal(local);
309 return hostIterator_->integrationOuterNormal(local);
313 FieldVector<ctype, dimworld>
unitOuterNormal (
const FieldVector<ctype, dim-1>& local)
const {
314 return hostIterator_->unitOuterNormal(local);
319 const GridImp* identityGrid_;
321 HostLevelIntersectionIterator hostIterator_;
FieldVector< ctype, dimworld > NormalVector
Definition: identitygridintersections.hh:51
GridImp::template Codim< 0 >::Entity Entity
Definition: identitygridintersections.hh:50
EntityPointer inside() const
Definition: identitygridintersections.hh:61
LocalGeometry geometryInOutside() const
Definition: identitygridintersections.hh:277
NormalVector centerUnitOuterNormal() const
Return unit outer normal (length == 1)
Definition: identitygridintersections.hh:235
LocalGeometry geometryInInside() const
Definition: identitygridintersections.hh:270
FieldVector< ctype, dimworld > integrationOuterNormal(const FieldVector< ctype, dim-1 > &local) const
return outer normal multiplied by the integration element
Definition: identitygridintersections.hh:308
bool boundary() const
return true if intersection is with boundary.
Definition: identitygridintersections.hh:226
FieldVector< ctype, dimworld > NormalVector
Definition: identitygridintersections.hh:203
GridImp::template Codim< 0 >::EntityPointer EntityPointer
Definition: identitygridintersections.hh:199
The IdentityGridLeafIterator class.
int indexInInside() const
local number of codim 1 entity in self where intersection is contained in
Definition: identitygridintersections.hh:139
EntityPointer outside() const
Definition: identitygridintersections.hh:219
int boundaryId() const
return information about the Boundary
Definition: identitygridintersections.hh:94
int boundaryId() const
return information about the Boundary
Definition: identitygridintersections.hh:246
GridImp::template Codim< 1 >::Geometry Geometry
Definition: identitygridintersections.hh:48
Definition: identitygridentity.hh:27
EntityPointer outside() const
Definition: identitygridintersections.hh:68
bool neighbor() const
return true if across the edge an neighbor on this level exists
Definition: identitygridintersections.hh:88
bool conforming() const
Return true if this is a conforming intersection.
Definition: identitygridintersections.hh:256
GridImp::template Codim< 1 >::LocalGeometry LocalGeometry
Definition: identitygridintersections.hh:49
FieldVector< ctype, dimworld > unitOuterNormal(const FieldVector< ctype, dim-1 > &local) const
return unit outer normal
Definition: identitygridintersections.hh:313
bool conforming() const
Return true if this is a conforming intersection.
Definition: identitygridintersections.hh:104
Geometry geometry() const
Definition: identitygridintersections.hh:284
LocalGeometry geometryInInside() const
Definition: identitygridintersections.hh:118
Iterator over all element neighborsMesh entities of codimension 0 ("elements") allow to visit all nei...
Definition: identitygridentity.hh:30
IdentityGridLevelIntersection(const GridImp *identityGrid, const HostLevelIntersectionIterator &hostIterator)
Definition: identitygridintersections.hh:205
GeometryType type() const
Geometry type of an intersection.
Definition: identitygridintersections.hh:261
size_t boundarySegmentIndex() const
return the boundary segment index
Definition: identitygridintersections.hh:99
Definition: identitygridintersections.hh:181
LocalGeometry geometryInOutside() const
Definition: identitygridintersections.hh:125
int indexInInside() const
local number of codim 1 entity in self where intersection is contained in
Definition: identitygridintersections.hh:291
bool neighbor() const
return true if across the edge an neighbor on this level exists
Definition: identitygridintersections.hh:240
EntityPointer inside() const
Definition: identitygridintersections.hh:212
bool boundary() const
return true if intersection is with boundary.
Definition: identitygridintersections.hh:74
Geometry geometry() const
Definition: identitygridintersections.hh:132
IdentityGridLeafIntersection(const GridImp *identityGrid, const HostLeafIntersectionIterator &hostIterator)
Definition: identitygridintersections.hh:53
An intersection with a leaf neighbor elementMesh entities of codimension 0 ("elements") allow to visi...
Definition: identitygridintersections.hh:29
size_t boundarySegmentIndex() const
return the boundary segment index
Definition: identitygridintersections.hh:251
GridImp::template Codim< 0 >::Entity Entity
Definition: identitygridintersections.hh:202
FieldVector< ctype, dimworld > outerNormal(const FieldVector< ctype, dim-1 > &local) const
return outer normal
Definition: identitygridintersections.hh:303
FieldVector< ctype, GridImp::dimensionworld > unitOuterNormal(const FieldVector< ctype, GridImp::dimension-1 > &local) const
return unit outer normal
Definition: identitygridintersections.hh:161
NormalVector centerUnitOuterNormal() const
Return unit outer normal (length == 1)
Definition: identitygridintersections.hh:83
GridImp::template Codim< 1 >::LocalGeometry LocalGeometry
Definition: identitygridintersections.hh:201
int indexInOutside() const
local number of codim 1 entity in neighbor where intersection is contained
Definition: identitygridintersections.hh:297
FieldVector< ctype, GridImp::dimensionworld > integrationOuterNormal(const FieldVector< ctype, GridImp::dimension-1 > &local) const
return outer normal multiplied by the integration element
Definition: identitygridintersections.hh:156
int indexInOutside() const
local number of codim 1 entity in neighbor where intersection is contained
Definition: identitygridintersections.hh:145
GridImp::template Codim< 1 >::Geometry Geometry
Definition: identitygridintersections.hh:200
GeometryType type() const
Geometry type of an intersection.
Definition: identitygridintersections.hh:109
Definition: identitygridentity.hh:38
GridImp::template Codim< 0 >::EntityPointer EntityPointer
Definition: identitygridintersections.hh:47
FieldVector< ctype, GridImp::dimensionworld > outerNormal(const FieldVector< ctype, GridImp::dimension-1 > &local) const
return outer normal
Definition: identitygridintersections.hh:151