3#ifndef DUNE_GRID_HOSTGRIDACCESS_HH
4#define DUNE_GRID_HOSTGRIDACCESS_HH
8#include <dune/grid/geometrygrid/intersection.hh>
16 template<
class HostGr
id,
class CoordFunction,
class Allocator >
26 template<
class Gr
id >
27 struct HostGridAccess;
38 template<
class HG,
class CoordFunction,
class Allocator >
39 struct HostGridAccess< GeometryGrid< HG, CoordFunction, Allocator > >
44 typedef GeometryGrid< HG, CoordFunction, Allocator > Grid;
47 typedef typename Grid::HostGrid HostGrid;
70 typedef typename Grid::Traits::LeafIntersection LeafIntersection;
72 typedef typename Grid::Traits::LevelIntersection LevelIntersection;
75 typedef typename HostGrid::Traits::LeafIntersection HostLeafIntersection;
77 typedef typename HostGrid::Traits::LevelIntersection HostLevelIntersection;
83 static const HostGrid &hostGrid (
const Grid &grid )
85 return grid.hostGrid();
88 template<
class Entity >
90 hostEntity (
const Entity &entity )
92 return hostEntity< Entity::codimension >( entity );
96 static const typename Codim< codim >::HostEntity &
97 hostEntity (
const typename Codim< codim >::Entity &entity )
99 return Grid::getRealImplementation( entity ).hostEntity();
102 template<
class HostIntersection >
103 static const HostIntersection &
104 hostIntersection (
const Intersection<
const Grid, GeoGrid::Intersection< const Grid, HostIntersection > > &intersection )
106 return Grid::getRealImplementation( intersection ).hostIntersection();
119 struct HostGridAccess< IdentityGrid< HG > >
124 typedef IdentityGrid< HG > Grid;
135 template<
int codim >
155 typedef typename HostGrid::Traits::LeafIntersection HostLeafIntersection;
157 typedef typename HostGrid::Traits::LevelIntersection HostLevelIntersection;
163 static const HostGrid &hostGrid (
const Grid &grid )
168 template<
class Entity >
170 hostEntity (
const Entity &entity )
172 return hostEntity< Entity::codimension >( entity );
175 template<
int codim >
176 static const typename Codim< codim >::HostEntity &
177 hostEntity (
const typename Codim< codim >::Entity &entity )
179 return *Grid::getRealImplementation( entity ).hostEntity_;
182 static const HostLeafIntersection &
183 hostIntersection (
const LeafIntersection &intersection )
185 return *Grid::getRealImplementation( intersection ).hostIterator_;
188 static const HostLevelIntersection &
189 hostIntersection (
const LevelIntersection &intersection )
191 return *Grid::getRealImplementation( intersection ).hostIterator_;
Wrapper class for entities.
Definition: entity.hh:62
grid wrapper replacing the geometries
Definition: grid.hh:83
GridFamily::Traits::LeafIntersection LeafIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimensio...
Definition: grid.hh:486
GridFamily::Traits::LevelIntersection LevelIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimensio...
Definition: grid.hh:491
Provides a meta grid that is identical to its host.
Definition: identitygrid.hh:136
HostGridType & getHostGrid() const
Returns the hostgrid this IdentityGrid lives in.
Definition: identitygrid.hh:491
Dune namespace.
Definition: alignment.hh:10
Static tag representing a codimension.
Definition: dimension.hh:22
Grid::template Codim< codim >::EntityPointer EntityPointer
type of the GeometryGrid entity pointer
Definition: hostgridaccess.hh:61
HostGrid::template Codim< codim >::Entity HostEntity
type of the host entity
Definition: hostgridaccess.hh:64
Grid::template Codim< codim >::Entity Entity
type of the GeometryGrid entity
Definition: hostgridaccess.hh:59
HostGrid::template Codim< codim >::EntityPointer HostEntityPointer
type of the host entity pointer
Definition: hostgridaccess.hh:66
Grid::template Codim< codim >::Entity Entity
type of the IdGrid entity
Definition: hostgridaccess.hh:139
HostGrid::template Codim< codim >::EntityPointer HostEntityPointer
type of the host entity pointer
Definition: hostgridaccess.hh:146
Grid::template Codim< codim >::EntityPointer EntityPointer
type of the IdGrid entity pointer
Definition: hostgridaccess.hh:141
HostGrid::template Codim< codim >::Entity HostEntity
type of the host entity
Definition: hostgridaccess.hh:144