dune-grid
2.2.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
dune
grid
albertagrid
albertagrid/gridfamily.hh
Go to the documentation of this file.
1
#ifndef DUNE_ALBERTAGRID_GRIDFAMILTY_HH
2
#define DUNE_ALBERTAGRID_GRIDFAMILTY_HH
3
9
#include <dune/common/collectivecommunication.hh>
10
11
#include <
dune/grid/common/geometry.hh
>
12
13
#include <
dune/grid/common/entity.hh
>
14
#include <
dune/grid/common/entitypointer.hh
>
15
#include <
dune/grid/common/intersection.hh
>
16
#include <
dune/grid/common/intersectioniterator.hh
>
17
#include <
dune/grid/common/entityiterator.hh
>
18
19
#include <
dune/grid/albertagrid/misc.hh
>
20
#include <
dune/grid/albertagrid/gridview.hh
>
21
22
#if HAVE_ALBERTA
23
24
namespace
Dune
25
{
26
27
// External Forward Declarations
28
// -----------------------------
29
30
template
<
int
dim,
int
dimworld >
31
class
AlbertaGrid;
32
33
template
<
int
codim,
int
dim,
class
Gr
id
Imp >
34
class
AlbertaGridEntity;
35
36
template
<
int
codim,
class
Gr
id
Imp >
37
class
AlbertaGridEntityPointer;
38
39
template
<
int
codim,
class
Gr
id
>
40
class
AlbertaGridEntitySeed;
41
42
template
<
int
mydim,
int
cdim,
class
Gr
id
Imp >
43
class
AlbertaGridGeometry;
44
45
template
<
int
mydim,
int
cdim,
class
Gr
id
Imp >
46
class
AlbertaGridGlobalGeometry;
47
48
template
<
int
dim,
int
dimworld >
49
class
AlbertaGridHierarchicIndexSet
;
50
51
template
<
class
Gr
id
Imp >
52
class
AlbertaGridHierarchicIterator
;
53
54
template
<
class
Gr
id
Imp >
55
class
AlbertaGridLeafIntersection
;
56
57
template
<
class
Gr
id
Imp >
58
class
AlbertaGridLeafIntersectionIterator
;
59
60
template
<
int
dim,
int
dimworld >
61
class
AlbertaGridIdSet
;
62
63
template
<
int
dim,
int
dimworld >
64
class
AlbertaGridIndexSet
;
65
66
template
<
int
codim, PartitionIteratorType pitype,
class
Gr
id
Imp >
67
class
AlbertaGridLeafIterator
;
68
69
template
<
int
codim, PartitionIteratorType pitype,
class
Gr
id
Imp >
70
class
AlbertaGridLevelIterator
;
71
72
73
74
75
// AlbertaGridFamily
76
// -----------------
77
78
template
<
int
dim,
int
dimworld>
79
struct
AlbertaGridFamily
80
{
81
typedef
AlbertaGrid< dim, dimworld >
GridImp
;
82
83
typedef
Alberta::Real
ctype
;
84
85
static
const
int
dimension
= dim;
86
static
const
int
dimensionworld
= dimworld;
87
88
typedef
AlbertaGridIndexSet< dim, dimworld >
LevelIndexSetImp
;
89
typedef
AlbertaGridIndexSet< dim, dimworld >
LeafIndexSetImp
;
90
91
typedef
AlbertaGridIdSet< dim, dimworld >
IdSetImp
;
92
typedef
unsigned
int
IdType
;
93
94
struct
Traits
95
{
96
typedef
GridImp
Grid
;
97
98
typedef
Dune::Intersection< const GridImp, AlbertaGridLeafIntersection >
LeafIntersection
;
99
typedef
Dune::Intersection< const GridImp, AlbertaGridLeafIntersection >
LevelIntersection
;
100
typedef
Dune::IntersectionIterator
101
<
const
GridImp
,
AlbertaGridLeafIntersectionIterator
,
AlbertaGridLeafIntersection
>
102
LeafIntersectionIterator
;
103
typedef
Dune::IntersectionIterator
104
<
const
GridImp
,
AlbertaGridLeafIntersectionIterator
,
AlbertaGridLeafIntersection
>
105
LevelIntersectionIterator
;
106
107
typedef
Dune::EntityIterator< 0, const GridImp, AlbertaGridHierarchicIterator< const GridImp >
>
HierarchicIterator
;
108
109
typedef
IdType
GlobalIdType
;
110
typedef
IdType
LocalIdType
;
111
112
template
<
int
cd >
113
struct
Codim
114
{
115
// IMPORTANT: Codim<codim>::Geometry == Geometry<dim-codim,dimw>
116
typedef
AlbertaGridGlobalGeometry
< dim-cd, dimworld,
const
GridImp
>
GeometryImpl
;
117
typedef
AlbertaGridGeometry
< dim-cd, dim,
const
GridImp
>
LocalGeometryImpl
;
118
typedef
Dune::Geometry
< dim-cd, dimworld,
const
GridImp
,
AlbertaGridGlobalGeometry
>
Geometry
;
119
typedef
Dune::Geometry
< dim-cd, dim,
const
GridImp
,
AlbertaGridGeometry
>
LocalGeometry
;
120
121
typedef
Dune::Entity< cd, dim, const GridImp, AlbertaGridEntity >
Entity
;
122
123
typedef
AlbertaGridEntityPointer< cd, const GridImp >
EntityPointerImpl
;
124
typedef
Dune::EntityPointer< const GridImp, EntityPointerImpl >
EntityPointer
;
125
typedef
AlbertaGridEntitySeed< cd, const GridImp >
EntitySeed
;
126
127
template
<PartitionIteratorType pitype>
128
struct
Partition
129
{
130
typedef
Dune::EntityIterator< cd, const GridImp, AlbertaGridLevelIterator< cd, pitype, const GridImp >
>
LevelIterator
;
131
typedef
Dune::EntityIterator< cd, const GridImp, AlbertaGridLeafIterator< cd, pitype, const GridImp >
>
LeafIterator
;
132
};
133
134
typedef
typename
Partition< All_Partition >::LevelIterator
LevelIterator
;
135
typedef
typename
Partition< All_Partition >::LeafIterator
LeafIterator
;
136
};
137
138
template
<PartitionIteratorType pitype>
139
struct
Partition
140
{
141
typedef
Dune::GridView<AlbertaLevelGridViewTraits<const GridImp,pitype>
>
LevelGridView
;
142
typedef
Dune::GridView<AlbertaLeafGridViewTraits<const GridImp,pitype>
>
LeafGridView
;
143
};
144
145
typedef
IndexSet< GridImp, LevelIndexSetImp, int >
LevelIndexSet
;
146
typedef
IndexSet< GridImp, LeafIndexSetImp, int >
LeafIndexSet
;
147
typedef
AlbertaGridHierarchicIndexSet< dim, dimworld >
HierarchicIndexSet
;
148
typedef
IdSet<GridImp,IdSetImp,IdType>
GlobalIdSet
;
149
typedef
IdSet<GridImp,IdSetImp,IdType>
LocalIdSet
;
150
151
typedef
Dune::CollectiveCommunication< No_Comm >
CollectiveCommunication
;
152
};
153
};
154
155
}
156
157
#endif // #if HAVE_ALBERTA
158
159
#endif // #ifndef DUNE_ALBERTAGRID_GRIDFAMILTY_HH
Generated on Mon May 20 2013 01:15:33 for dune-grid by
1.8.3.1