3 #ifndef DUNE_POLYHEDRALGRID_GRIDVIEW_HH 4 #define DUNE_POLYHEDRALGRID_GRIDVIEW_HH 7 #include <dune/common/typetraits.hh> 10 #include <dune/grid/common/capabilities.hh> 11 #include <dune/grid/common/gridview.hh> 14 #include <opm/grid/polyhedralgrid/indexset.hh> 15 #include <opm/grid/polyhedralgrid/intersection.hh> 16 #include <opm/grid/polyhedralgrid/intersectioniterator.hh> 17 #include <opm/grid/polyhedralgrid/iterator.hh> 25 template<
int dim,
int dimworld,
typename coord_t, PartitionIteratorType defaultpitype >
28 template<
int dim,
int dimworld,
typename coord_t, PartitionIteratorType ptype >
35 template<
int dim,
int dimworld,
typename coord_t, PartitionIteratorType defaultpitype >
43 typedef typename Traits::Grid
Grid;
44 typedef typename Traits::IndexSet
IndexSet;
45 typedef typename Traits::Intersection Intersection;
46 typedef typename Traits::IntersectionIterator IntersectionIterator;
48 using Communication =
typename Traits::Communication;
49 using CollectiveCommunication = Communication;
52 :
public Traits::template
Codim< codim >
55 static const bool conforming = Traits :: conforming;
56 static const PartitionIteratorType pitype = Traits :: pitype;
64 const Grid &grid ()
const 70 const IndexSet &indexSet ()
const 72 return grid().leafIndexSet();
75 bool isConforming()
const {
return bool(conforming); }
77 int size (
int codim )
const 79 return grid().
size( codim );
82 int size (
const GeometryType &type )
const 84 return grid().
size( type );
88 typename Codim< codim >::Iterator begin ()
const 90 return begin< codim, defaultpitype >();
93 template<
int codim, PartitionIteratorType pit >
94 typename Codim< codim >::template Partition< pit >::Iterator begin ()
const 96 typedef typename Traits::template Codim< codim >::template Partition< pit >::IteratorImpl Impl;
97 return Impl( grid().extraData(),
true );
100 template<
int codim >
101 typename Codim< codim >::Iterator end ()
const 103 return end< codim, defaultpitype >();
106 template<
int codim, PartitionIteratorType pit >
107 typename Codim< codim >::template Partition< pit >::Iterator end ()
const 109 typedef typename Traits::template Codim< codim >::template Partition< pit >::IteratorImpl Impl;
110 return Impl( grid().extraData(),
false );
113 IntersectionIterator ibegin (
const typename Codim< 0 >::Entity &entity )
const 115 typedef typename Traits::IntersectionIteratorImpl IntersectionIteratorImpl;
116 return IntersectionIteratorImpl( grid().extraData(), entity.seed(),
true);
119 IntersectionIterator iend (
const typename Codim< 0 >::Entity &entity )
const 121 typedef typename Traits::IntersectionIteratorImpl IntersectionIteratorImpl;
122 return IntersectionIteratorImpl( grid().extraData(), entity.seed(),
false);
125 const CollectiveCommunication &comm ()
const 127 return grid().
comm();
130 int overlapSize (
int codim )
const 135 int ghostSize (
int codim )
const 140 template<
class DataHandle,
class Data >
141 void communicate ( CommDataHandleIF< DataHandle, Data > ,
143 CommunicationDirection )
const 154 template<
int dim,
int dimworld,
typename coord_t, PartitionIteratorType ptype >
155 struct PolyhedralGridViewTraits
157 typedef PolyhedralGrid< dim, dimworld, coord_t > Grid;
158 static const PartitionIteratorType pitype = ptype;
160 typedef PolyhedralGridView< dim, dimworld, coord_t, pitype > GridViewImp;
161 typedef PolyhedralGridIndexSet< Grid::dimension, Grid::dimensionworld, coord_t > IndexSet;
163 typedef PolyhedralGridIntersection< const Grid > IntersectionImpl;
164 typedef PolyhedralGridIntersectionIterator< const Grid > IntersectionIteratorImpl;
166 typedef Dune::Intersection< const Grid, IntersectionImpl > Intersection;
167 typedef Dune::IntersectionIterator< const Grid, IntersectionIteratorImpl, IntersectionImpl > IntersectionIterator;
170 using CollectiveCommunication = Communication;
172 template<
int codim >
175 typedef typename Grid::Traits::template Codim< codim >::Entity Entity;
176 typedef typename Grid::Traits::template Codim< codim >::EntityPointer EntityPointer;
178 typedef typename Grid::template Codim< codim >::Geometry Geometry;
179 typedef typename Grid::template Codim< codim >::LocalGeometry LocalGeometry;
181 template< PartitionIteratorType pit >
185 typedef Dune::EntityIterator< codim, const Grid, IteratorImpl > Iterator;
188 typedef typename Partition< pitype >::Iterator Iterator;
191 static const bool conforming =
false;
196 #endif // #ifndef DUNE_POLYHEDRALGRID_GRIDVIEW_HH typename Traits::Communication Communication
communicator with all other processes having some part of the grid
Definition: grid.hh:311
Definition: gridview.hh:26
int size(int, int codim) const
obtain number of entites on a level
Definition: grid.hh:428
int ghostSize(int codim) const
obtain size of ghost region for the leaf grid
Definition: grid.hh:625
Definition: gridview.hh:182
The namespace Dune is the main namespace for all Dune code.
Definition: CartesianIndexMapper.hpp:9
const CommunicationType & comm() const
obtain CollectiveCommunication object
Definition: grid.hh:712
Definition: iterator.hh:19
Definition: gridview.hh:29
Definition: gridview.hh:51
identical grid wrapper
Definition: declaration.hh:10
Definition: indexset.hh:23
Definition: gridview.hh:173
int overlapSize(int) const
obtain size of overlap region for the leaf grid
Definition: grid.hh:616