3 #ifndef DUNE_ALBERTAGRID_GRIDFAMILTY_HH
4 #define DUNE_ALBERTAGRID_GRIDFAMILTY_HH
11 #include <dune/common/parallel/communication.hh>
31 template<
int dim,
int dimworld >
34 template<
int codim,
int dim,
class Gr
idImp >
35 class AlbertaGridEntity;
37 template<
int codim,
class Gr
idImp >
38 class AlbertaGridEntityPointer;
40 template<
int codim,
class Gr
id >
41 class AlbertaGridEntitySeed;
43 template<
int mydim,
int cdim,
class Gr
idImp >
44 class AlbertaGridGeometry;
46 template<
int mydim,
int cdim,
class Gr
idImp >
47 class AlbertaGridGlobalGeometry;
49 template<
int dim,
int dimworld >
50 class AlbertaGridHierarchicIndexSet;
52 template<
class Gr
idImp >
53 class AlbertaGridHierarchicIterator;
55 template<
class Gr
idImp >
56 class AlbertaGridLeafIntersection;
58 template<
class Gr
idImp >
59 class AlbertaGridLeafIntersectionIterator;
61 template<
int dim,
int dimworld >
62 class AlbertaGridIdSet;
64 template<
int dim,
int dimworld >
65 class AlbertaGridIndexSet;
67 template<
int codim, PartitionIteratorType pitype,
class Gr
idImp >
68 class AlbertaGridLeafIterator;
70 template<
int codim, PartitionIteratorType pitype,
class Gr
idImp >
71 class AlbertaGridLevelIterator;
79 template <
int dim,
int dimworld>
80 struct AlbertaGridFamily
82 typedef AlbertaGrid< dim, dimworld > GridImp;
84 typedef Alberta::Real ctype;
86 static const int dimension = dim;
87 static const int dimensionworld = dimworld;
89 typedef AlbertaGridIndexSet< dim, dimworld > LevelIndexSetImp;
90 typedef AlbertaGridIndexSet< dim, dimworld > LeafIndexSetImp;
92 typedef AlbertaGridIdSet< dim, dimworld > IdSetImp;
93 typedef unsigned int IdType;
102 <
const GridImp, AlbertaGridLeafIntersectionIterator< const GridImp >, AlbertaGridLeafIntersection< const GridImp > >
103 LeafIntersectionIterator;
105 <
const GridImp, AlbertaGridLeafIntersectionIterator< const GridImp >, AlbertaGridLeafIntersection< const GridImp > >
106 LevelIntersectionIterator;
110 typedef IdType GlobalIdType;
111 typedef IdType LocalIdType;
116 typedef AlbertaGridGlobalGeometry< dim-cd, dimworld,
const Grid > GeometryImpl;
117 typedef AlbertaGridGeometry< dim-cd, dim,
const Grid > LocalGeometryImpl;
118 typedef Dune::Geometry< dim-cd, dimworld,
const Grid, AlbertaGridGlobalGeometry > Geometry;
119 typedef Dune::Geometry< dim-cd, dim,
const Grid, LocalGeometryReference > LocalGeometry;
121 typedef AlbertaGridEntity< cd, dim, const GridImp > EntityImpl;
126 template <PartitionIteratorType pitype>
133 typedef typename Partition< All_Partition >::LevelIterator LevelIterator;
134 typedef typename Partition< All_Partition >::LeafIterator LeafIterator;
140 typedef IndexSet< GridImp, LevelIndexSetImp, int, std::array< GeometryType, 1 > > LevelIndexSet;
141 typedef IndexSet< GridImp, LeafIndexSetImp, int, std::array< GeometryType, 1 > > LeafIndexSet;
142 typedef AlbertaGridHierarchicIndexSet< dim, dimworld > HierarchicIndexSet;
143 typedef IdSet<GridImp,IdSetImp,IdType> GlobalIdSet;
144 typedef IdSet<GridImp,IdSetImp,IdType> LocalIdSet;
146 typedef Dune::CollectiveCommunication< No_Comm > CollectiveCommunication;
152 #endif // #if HAVE_ALBERTA
154 #endif // #ifndef DUNE_ALBERTAGRID_GRIDFAMILTY_HH