3 #ifndef DUNE_GEOGRID_GRIDVIEW_HH 4 #define DUNE_GEOGRID_GRIDVIEW_HH 6 #include <dune/common/typetraits.hh> 7 #include <dune/common/exceptions.hh> 26 template<
class HGV,
class CoordFunction,
class Allocator >
34 template<
class HGV,
class CoordFunction,
class Allocator >
37 friend class GridView< HGV, CoordFunction, Allocator >;
39 typedef HGV HostGridView;
41 typedef typename HostGridView::Grid HostGrid;
42 typedef typename HostGridView::Intersection HostIntersection;
43 typedef typename HostGridView::IntersectionIterator HostIntersectionIterator;
71 template< PartitionIteratorType pit >
87 template<
class HGV,
class CoordFunction,
class Allocator >
107 template<
int codim >
109 :
public Traits::template
Codim< codim >
114 GridView (
const Grid &grid,
const HostGridView &hostGridView )
115 : grid_( &grid ), hostGridView_( hostGridView )
119 : grid_( other.grid_ ), hostGridView_( other.hostGridView_ )
123 : grid_( other.grid_ ), hostGridView_(
std::move( other.hostGridView_ ) )
126 This &operator= (
const This &other )
129 hostGridView_ = other.hostGridView_;
131 indexSet_.reset( hostGridView().indexSet() );
135 This &operator= ( This &&other )
138 hostGridView_ = std::move( other.hostGridView_ );
140 indexSet_.reset( hostGridView().indexSet() );
152 indexSet_.
reset( hostGridView().indexSet() );
158 return hostGridView().size( codim );
163 return hostGridView().size( type );
166 template<
int codim >
169 return begin< codim, All_Partition >();
172 template<
int codim, PartitionIteratorType pit >
178 template<
int codim >
181 return end< codim, All_Partition >();
184 template<
int codim, PartitionIteratorType pit >
193 return IntersectionIteratorImpl( entity, hostGridView().ibegin( Grid::getRealImplementation( entity ).hostEntity() ) );
199 return IntersectionIteratorImpl( entity, hostGridView().iend( Grid::getRealImplementation( entity ).hostEntity() ) );
202 const CollectiveCommunication &
comm ()
const 204 return hostGridView().comm();
209 return hostGridView().overlapSize( codim );
214 return hostGridView().ghostSize( codim );
217 template<
class DataHandle,
class Data >
225 WrappedDataHandle wrappedDataHandle( grid(), dataHandle );
226 hostGridView().communicate( wrappedDataHandle, interface, direction );
233 HostGridView hostGridView_;
234 mutable IndexSet indexSet_;
241 #endif // #ifndef DUNE_GEOGRID_GRIDVIEW_HH
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:84
GeoGrid::IndexSet< const Grid, typename HostGridView::IndexSet > IndexSet
Definition: geometrygrid/gridview.hh:50
Definition: iterator.hh:28
CommunicationDirection
Define a type for communication direction parameter.
Definition: gridenums.hh:168
Dune::EntityIterator< codim, const Grid, IteratorImp > Iterator
Definition: geometrygrid/gridview.hh:75
Dune::IntersectionIterator< const Grid, GeoGrid::IntersectionIterator< const Grid, HostIntersectionIterator >, GeoGrid::Intersection< const Grid, HostIntersection > > IntersectionIterator
Definition: geometrygrid/gridview.hh:56
HostGridView::CollectiveCommunication CollectiveCommunication
Definition: geometrygrid/gridview.hh:58
Definition: geometrygrid/entity.hh:58
Codim< codim >::Iterator begin() const
Definition: geometrygrid/gridview.hh:167
Definition: geometrygrid/gridview.hh:61
GeoGrid::Iterator< HostGridView, codim, All_Partition, const Grid > IteratorImp
Definition: geometrygrid/gridview.hh:63
void reset()
Definition: geometrygrid/indexsets.hh:95
GeoGrid::Iterator< HostGridView, codim, pit, const Grid > IteratorImp
Definition: geometrygrid/gridview.hh:74
Definition: geometrygrid/gridview.hh:108
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: common/grid.hh:345
CommDataHandleIF describes the features of a data handle for communication in parallel runs using the...
Definition: datahandleif.hh:75
Definition: geometrygrid/gridview.hh:35
void communicate(CommDataHandleIF< DataHandle, Data > &dataHandle, InterfaceType interface, CommunicationDirection direction) const
Definition: geometrygrid/gridview.hh:218
grid wrapper replacing the geometriesGeometryGrid wraps another DUNE grid and replaces its geometry b...
Definition: declaration.hh:10
const HostGridView & hostGridView() const
Definition: geometrygrid/gridview.hh:229
IntersectionIterator ibegin(const typename Codim< 0 >::Entity &entity) const
Definition: geometrygrid/gridview.hh:190
int size(const GeometryType &type) const
Definition: geometrygrid/gridview.hh:161
Definition: geometrygrid/intersection.hh:19
Traits::IndexSet IndexSet
Definition: geometrygrid/gridview.hh:99
const CollectiveCommunication & comm() const
Definition: geometrygrid/gridview.hh:202
Definition: geometrygrid/gridview.hh:72
interface class for an iterator over grid entities
Definition: entityiterator.hh:29
Codim< codim >::template Partition< pit >::Iterator end() const
Definition: geometrygrid/gridview.hh:185
int size(int codim) const
Definition: geometrygrid/gridview.hh:156
Output conforming data.
Definition: common.hh:70
Codim< codim >::Iterator end() const
Definition: geometrygrid/gridview.hh:179
Traits::IntersectionIterator IntersectionIterator
Definition: geometrygrid/gridview.hh:103
Definition: geometrygrid/indexsets.hh:25
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
Definition: geometrygrid/datahandle.hh:23
A set of traits classes to store static information about grid implementation.
Dune::EntityIterator< codim, const Grid, IteratorImp > Iterator
Definition: geometrygrid/gridview.hh:64
GridViewTraits< HGV, CoordFunction, Allocator > Traits
Definition: geometrygrid/gridview.hh:93
Dune::GeometryGrid< HostGrid, CoordFunction, Allocator > Grid
Definition: geometrygrid/gridview.hh:48
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: albertagrid/dgfparser.hh:26
Grid::template Codim< codim >::LocalGeometry LocalGeometry
Definition: geometrygrid/gridview.hh:69
const Grid & grid() const
Definition: geometrygrid/gridview.hh:144
GridView(This &&other)
Definition: geometrygrid/gridview.hh:122
Traits::Grid Grid
Definition: geometrygrid/gridview.hh:97
static const bool conforming
Definition: geometrygrid/gridview.hh:79
Traits::Intersection Intersection
Definition: geometrygrid/gridview.hh:101
GridView(const Grid &grid, const HostGridView &hostGridView)
Definition: geometrygrid/gridview.hh:114
int overlapSize(int codim) const
Definition: geometrygrid/gridview.hh:207
Traits::HostGridView HostGridView
Definition: geometrygrid/gridview.hh:95
Definition: geometrygrid/gridview.hh:27
Traits::CollectiveCommunication CollectiveCommunication
Definition: geometrygrid/gridview.hh:105
Grid::Traits::template Codim< codim >::Entity Entity
Definition: geometrygrid/gridview.hh:66
Grid::template Codim< codim >::Geometry Geometry
Definition: geometrygrid/gridview.hh:68
GridView(const This &other)
Definition: geometrygrid/gridview.hh:118
int ghostSize(int codim) const
Definition: geometrygrid/gridview.hh:212
IntersectionIterator iend(const typename Codim< 0 >::Entity &entity) const
Definition: geometrygrid/gridview.hh:196
const IndexSet & indexSet() const
Definition: geometrygrid/gridview.hh:150
Dune::Intersection< const Grid, GeoGrid::Intersection< const Grid, HostIntersection > > Intersection
Definition: geometrygrid/gridview.hh:52
Codim< codim >::template Partition< pit >::Iterator begin() const
Definition: geometrygrid/gridview.hh:173
Include standard header files.
Definition: agrid.hh:58
GridView< HostGridView, CoordFunction, Allocator > GridViewImp
Definition: geometrygrid/gridview.hh:46