dune-multidomaingrid 2.9
Loading...
Searching...
No Matches
subdomaingrid/intersectioniterator.hh
Go to the documentation of this file.
1#ifndef DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_INTERSECTIONITERATOR_HH
2#define DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_INTERSECTIONITERATOR_HH
3
4#include <dune/grid/common/intersectioniterator.hh>
5
6#include "intersection.hh"
7
8namespace Dune {
9
10namespace mdgrid {
11
12namespace subdomain {
13
14template<
15 typename GridImp,
16 typename IndexSet,
17 typename MultiDomainIntersectionIterator
18 >
20
21 template<class, class, class>
23
24 template<class, class>
25 friend class Dune::Intersection;
26
27 using MultiDomainIntersection = typename MultiDomainIntersectionIterator::Intersection;
29 GridImp,
31 MultiDomainIntersection
32 >;
33
34public:
35
37
39 : _indexSet(nullptr)
40 {}
41
42 IntersectionIteratorWrapper(const IndexSet* indexSet, const MultiDomainIntersectionIterator& multiDomainIterator)
43 : _indexSet(indexSet)
44 , _multiDomainIterator(multiDomainIterator)
45 {}
46
47 const auto& hostIntersectionIterator() const {
48 return GridImp::MultiDomainGrid::getRealImplementation(_multiDomainIterator).hostIntersectionIterator();
49 }
50
52 return _indexSet == rhs._indexSet && _multiDomainIterator == rhs._multiDomainIterator;
53 }
54
55 void increment() {
56 ++_multiDomainIterator;
57 }
58
60 return {IntersectionWrapper(_indexSet,*_multiDomainIterator)};
61 }
62
63private:
64
65 const IndexSet* _indexSet;
66 MultiDomainIntersectionIterator _multiDomainIterator;
67
68};
69
70
71} // namespace subdomain
72
73} // namespace mdgrid
74
75} // namespace Dune
76
77#endif // DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_INTERSECTIONITERATOR_HH
bool setContains(const ArrayBasedSet< SI, capacity > &a, const ArrayBasedSet< SI, capacity > &b)
Definition subdomaingrid/intersectioniterator.hh:19
const auto & hostIntersectionIterator() const
Definition subdomaingrid/intersectioniterator.hh:47
IntersectionIteratorWrapper(const IndexSet *indexSet, const MultiDomainIntersectionIterator &multiDomainIterator)
Definition subdomaingrid/intersectioniterator.hh:42
IntersectionIteratorWrapper()
Definition subdomaingrid/intersectioniterator.hh:38
void increment()
Definition subdomaingrid/intersectioniterator.hh:55
bool equals(const IntersectionIteratorWrapper &rhs) const
Definition subdomaingrid/intersectioniterator.hh:51
Intersection dereference() const
Definition subdomaingrid/intersectioniterator.hh:59
Definition subdomaingrid/intersection.hh:19