3 #ifndef DUNE_ALU3DINCLUDE_HH
4 #define DUNE_ALU3DINCLUDE_HH
10 #define COMPILE_ALUGRID_LIB 0
12 #if COMPILE_ALUGRID_LIB
13 #define COMPILE_ALUGRID_INLINE 0
15 #define COMPILE_ALUGRID_INLINE 1
18 #if COMPILE_ALUGRID_INLINE
19 #define alu_inline inline
26 #define ALU3DSPACE ALUGridSpace ::
28 #include <dune/common/parallel/mpicollectivecommunication.hh>
33 #if ALU3DGRID_PARALLEL
34 #include <alugrid_parallel.h>
37 #include <alugrid_serial.h>
66 template<
class Comm >
87 template <
class BndFaceType>
94 #if ALU3DGRID_PARALLEL
96 struct ALU3dBasicImplTraits< MPI_Comm >
99 typedef ALU3DSPACE GitterDunePll GitterImplType;
101 typedef GitterType::helement_STI HElementType;
102 typedef GitterType::hface_STI HFaceType;
103 typedef GitterType::hedge_STI HEdgeType;
104 typedef GitterType::vertex_STI VertexType;
105 typedef GitterType::hbndseg_STI HBndSegType;
106 typedef GitterType::ghostpair_STI GhostPairType;
108 typedef ALU3DSPACE ElementPllXIF_t PllElementType;
110 typedef GitterType::Geometric::hedge1_GEO GEOEdgeType;
113 template <
class BndFaceType>
114 static bool isGhost(
const BndFaceType*
ghost )
116 return ( ghost != 0 );
119 #endif // #if ALU3DGRID_PARALLEL
126 template< ALU3dGr
idElementType elType,
class Comm,
int codim >
129 template<
class Comm >
142 template<
class Comm >
155 template<
class Comm >
165 template<
class Comm >
175 template< ALU3dGr
idElementType elType,
class Comm >
185 template< ALU3dGr
idElementType elType,
class Comm >
200 template< ALU3dGr
idElementType elType,
class Comm >
203 template<
class Comm >
217 typedef typename GitterImplType::Objects::Hbnd3Default
BNDFaceType;
223 enum { bisect_element_t =
224 #ifdef ALUGRID_PERIODIC_BOUNDARY_PARALLEL
230 enum { refine_element_t = MarkRuleType::iso8 };
231 enum { coarse_element_t = MarkRuleType::crs };
232 enum { nosplit_element_t = MarkRuleType::nosplit };
237 template<
int codim >
243 template <
class Elem>
244 static const GEOFaceType*
getFace(
const Elem& elem,
const int aluFace )
246 return elem.myhface3( aluFace );
250 template<
class Comm >
264 typedef typename GitterImplType::Objects::Hbnd4Default
BNDFaceType;
270 enum { refine_element_t = MarkRuleType::iso8 };
271 enum { bisect_element_t = MarkRuleType::iso8 };
272 enum { coarse_element_t = MarkRuleType::crs };
273 enum { nosplit_element_t = MarkRuleType::nosplit };
278 template<
int codim >
284 template <
class Elem>
285 static const GEOFaceType*
getFace(
const Elem& elem,
const int aluFace )
287 return elem.myhface4( aluFace );
295 template<
class Comm >
307 size_t size ()
const {
return vertexList_.size(); }
313 template <
class Gr
idType>
314 void setupVxList (
const GridType & grid,
int level);
316 IteratorType
begin () {
return vertexList_.begin(); }
317 IteratorType
end () {
return vertexList_.end(); }
322 VertexListType vertexList_;
328 template<
class Comm >
341 size_t size ()
const {
return vertexList_.size(); }
347 template <
class Gr
idType>
350 IteratorType
begin () {
return vertexList_.begin(); }
351 IteratorType
end () {
return vertexList_.end(); }
357 const int idx = vertex.getIndex();
359 assert( idx < (
int)
size());
360 const ItemType & p = vertexList_[idx];
362 return vertex.level();
368 VertexListType vertexList_;
382 size_t size ()
const {
return itemList_.size(); }
389 IteratorType
begin () {
return itemList_.begin(); }
390 IteratorType
end () {
return itemList_.end(); }
396 ItemListType itemList_;
405 template<
class Comm >
411 assert(index >= 0 && index < 4);
418 assert(index >= 0 && index < 6);
425 #endif // #ifndef DUNE_ALU3DINCLUDE_HH
Definition: alu3dinclude.hh:329
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:132
GitterType::Geometric::hedge1_GEO GEOEdgeType
Definition: alu3dinclude.hh:84
static const ALU3dImplTraits< tetra, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< tetra, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:409
Definition: alu3dinclude.hh:201
bool up2Date() const
Definition: alu3dinclude.hh:343
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:181
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:151
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:191
GitterType::Geometric::hasFace3 HasFaceType
Definition: alu3dinclude.hh:215
VertexListType & getItemList()
Definition: alu3dinclude.hh:353
GitterImplType::Objects::hbndseg4_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:265
GitterImplType::Objects::hexa_IMPL ImplementationType
Definition: alu3dinclude.hh:150
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:234
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:285
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:258
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:158
ALU3dGridItemList ALU3dGridItemListType
Definition: alu3dinclude.hh:399
GitterType::Geometric::hface4_GEO ImplementationType
Definition: alu3dinclude.hh:172
GitterType::Geometric::periodic4_GEO GEOPeriodicType
Definition: alu3dinclude.hh:261
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:145
GitterType::Geometric::periodic3_GEO GEOPeriodicType
Definition: alu3dinclude.hh:214
GitterType::Geometric::hface3_GEO ImplementationType
Definition: alu3dinclude.hh:162
void unsetUp2Date()
Definition: alu3dinclude.hh:385
GitterImplType::Objects::hexa_IMPL IMPLElementType
Definition: alu3dinclude.hh:259
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:332
size_t size() const
Definition: alu3dinclude.hh:341
IteratorType end()
Definition: alu3dinclude.hh:390
Definition: alu3dinclude.hh:43
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:161
ALU3dGridItemList()
Definition: alu3dinclude.hh:380
GitterImplType::Objects::tetra_IMPL ImplementationType
Definition: alu3dinclude.hh:137
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:148
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:254
Definition: alu3dinclude.hh:127
Ghost ghost
PartitionSet for the ghost partition.
Definition: partitionset.hh:238
static const int ProcessorBoundary_t
Definition: alu3dinclude.hh:46
GitterType::helement_STI HElementType
Definition: alu3dinclude.hh:75
IteratorType begin()
Definition: alu3dinclude.hh:316
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:168
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:335
GitterType::Geometric::VertexGeo ImplementationType
Definition: alu3dinclude.hh:192
GatherScatter GatherScatterType
Definition: alu3dinclude.hh:49
void unsetUp2Date()
Definition: alu3dinclude.hh:310
ALU3DSPACE GitterDuneImpl GitterImplType
Definition: alu3dinclude.hh:73
GitterType::hedge_STI InterfaceType
Definition: alu3dinclude.hh:180
GitterImplType::Objects::Hbnd3Default BNDFaceType
Definition: alu3dinclude.hh:217
Definition: alu3dinclude.hh:296
GitterType::Geometric::Hface3Rule HfaceRuleType
Definition: alu3dinclude.hh:216
std::pair< VertexType *, int > ItemType
Definition: alu3dinclude.hh:333
GitterType::hedge_STI HEdgeType
Definition: alu3dinclude.hh:77
GitterType::hface_STI HFaceType
Definition: alu3dinclude.hh:76
GitterImplType::Objects::tetra_IMPL IMPLElementType
Definition: alu3dinclude.hh:212
Definition: topology.hh:13
GitterType::Geometric::hasFace4 EntitySeedType
Definition: alu3dinclude.hh:149
GitterType::Geometric::hexa_GEO GEOElementType
Definition: alu3dinclude.hh:260
void setupVxList(const GridType &grid)
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:170
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:208
void setupVxList(const GridType &grid, int level)
GitterType::vertex_STI VertexType
Definition: alu3dinclude.hh:78
GitterImplType::Objects::Hbnd4Default BNDFaceType
Definition: alu3dinclude.hh:264
Definition: alu3dinclude.hh:373
int getLevel(const VertexType &vertex) const
Definition: alu3dinclude.hh:355
ALU3dGridVertexList()
Definition: alu3dinclude.hh:303
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:171
void unsetUp2Date()
Definition: alu3dinclude.hh:344
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:235
GitterType::hbndseg_STI HBndSegType
Definition: alu3dinclude.hh:79
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:178
GitterImplType::Objects::Hbnd4Default GhostImplementationType
Definition: alu3dinclude.hh:152
GitterType::Geometric::hface4_GEO GEOFaceType
Definition: alu3dinclude.hh:257
IteratorType end()
Definition: alu3dinclude.hh:317
size_t size() const
Definition: alu3dinclude.hh:382
ItemListType::iterator IteratorType
Definition: alu3dinclude.hh:378
GitterType::Geometric::Hface4Rule HfaceRuleType
Definition: alu3dinclude.hh:263
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:301
ALU3DSPACE Gitter GitterType
Definition: alu3dinclude.hh:72
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:275
#define ALU3DSPACE
Definition: alu3dinclude.hh:26
GitterType::Geometric::hedge1_GEO ImplementationType
Definition: alu3dinclude.hh:182
double alu3d_ctype
Definition: alu3dinclude.hh:59
GitterType::Geometric::hasFace4 HasFaceType
Definition: alu3dinclude.hh:262
Definition: common.hh:179
IteratorType begin()
Definition: alu3dinclude.hh:350
GitterType::Geometric::hface3_GEO GEOFaceType
Definition: alu3dinclude.hh:210
bool up2Date() const
Definition: alu3dinclude.hh:384
IteratorType begin()
Definition: alu3dinclude.hh:389
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:299
size_t size() const
Definition: alu3dinclude.hh:307
GitterImplType::Objects::hbndseg3_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:218
static const ALU3dImplTraits< hexa, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< hexa, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:416
Definition: topology.hh:40
GitterType::Geometric::tetra_GEO GEOElementType
Definition: alu3dinclude.hh:213
IteratorType end()
Definition: alu3dinclude.hh:351
void markAsUp2Date()
Definition: alu3dinclude.hh:387
GitterType::vertex_STI InterfaceType
Definition: alu3dinclude.hh:190
GitterType::Geometric::HexaRule MarkRuleType
Definition: alu3dinclude.hh:267
Definition: topology.hh:13
VertexListType & getItemList()
Definition: alu3dinclude.hh:319
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:188
bool up2Date() const
Definition: alu3dinclude.hh:309
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:244
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:160
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:211
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:276
std::vector< void * > ItemListType
Definition: alu3dinclude.hh:377
Definition: alu3dinclude.hh:67
Include standard header files.
Definition: agrid.hh:59
GitterType::ghostpair_STI GhostPairType
Definition: alu3dinclude.hh:80
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:207
GitterType::Geometric::TetraRule MarkRuleType
Definition: alu3dinclude.hh:220
HElementType PllElementType
Definition: alu3dinclude.hh:82
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:135
GitterImplType::Objects::Hbnd3Default GhostImplementationType
Definition: alu3dinclude.hh:139
ItemListType & getItemList()
Definition: alu3dinclude.hh:392
Definition: alu3dinclude.hh:406
ALU3dGridLeafVertexList()
Definition: alu3dinclude.hh:337
std::vector< VertexType * > VertexListType
Definition: alu3dinclude.hh:300
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:133
GitterType::Geometric::hasFace3 EntitySeedType
Definition: alu3dinclude.hh:136
static bool isGhost(const BndFaceType *ghost)
method for ghost check
Definition: alu3dinclude.hh:88
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:138
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:255
std::vector< ItemType > VertexListType
Definition: alu3dinclude.hh:334
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:146