1#ifndef DUNE_FEM_GRIDPART_GEOMETRYGRIDPART_INTERSECTIONITERATOR_HH
2#define DUNE_FEM_GRIDPART_GEOMETRYGRIDPART_INTERSECTIONITERATOR_HH
6#include <dune/grid/common/intersectioniterator.hh>
8#include <dune/fem/gridpart/geometrygridpart/intersection.hh>
19 template<
class Gr
idFamily >
20 class GeometryGridPartIntersectionIterator
22 typedef GeometryGridPartIntersectionIterator< GridFamily > ThisType;
24 typedef typename std::remove_const_t< GridFamily >::Traits Traits;
26 typedef typename Traits::HostGridPartType::IntersectionIteratorType HostIntersectionIteratorType;
28 typedef typename Traits::template Codim< 0 >::Entity Entity;
29 typedef typename Traits::template Codim< 0 >::Geometry ElementGeometry;
31 typedef typename Traits::GridFunctionType GridFunctionType;
33 typedef GeometryGridPartIntersection< const GridFamily > IntersectionImplType;
38 GeometryGridPartIntersectionIterator () =
default;
40 GeometryGridPartIntersectionIterator (
const Entity &inside,
const HostIntersectionIteratorType &hostIterator )
41 : hostIterator_( hostIterator ), gridFunction_( &inside.impl().gridFunction() ), insideGeo_( inside.geometry().impl() )
44 bool equals (
const ThisType &other )
const {
return (hostIterator_ == other.hostIterator_); }
46 void increment () { ++hostIterator_; }
48 Intersection dereference ()
const {
return IntersectionImplType( *gridFunction_, insideGeo_, *hostIterator_ ); }
51 HostIntersectionIteratorType hostIterator_;
52 const GridFunctionType *gridFunction_ =
nullptr;
53 typename ElementGeometry::Implementation insideGeo_;
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: intersection.hh:164
constexpr auto equals
Function object for performing equality comparison.
Definition: hybridutilities.hh:572
Dune namespace.
Definition: alignedallocator.hh:13