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>
43 namespace ALUGridSpace
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>
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>
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);
328 template<
class Comm >
341 size_t size ()
const {
return vertexList_.size(); }
347 template <
class Gr
idType>
357 const int idx = vertex.getIndex();
359 assert( idx < (
int)
size());
360 const ItemType & p = vertexList_[idx];
362 return vertex.level();
382 size_t size ()
const {
return itemList_.size(); }
405 template<
class Comm >
411 assert(index >= 0 && index < 4);
418 assert(index >= 0 && index < 6);
425 #endif // #ifndef DUNE_ALU3DINCLUDE_HH
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:145
GitterType::Geometric::hasFace3 EntitySeedType
Definition: alu3dinclude.hh:136
Definition: topology.hh:13
void markAsUp2Date()
Definition: alu3dinclude.hh:387
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:161
GatherScatter GatherScatterType
Definition: alu3dinclude.hh:49
std::vector< ItemType > VertexListType
Definition: alu3dinclude.hh:334
GitterType::Geometric::hexa_GEO GEOElementType
Definition: alu3dinclude.hh:260
GitterType::Geometric::periodic4_GEO GEOPeriodicType
Definition: alu3dinclude.hh:261
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:211
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:170
std::vector< VertexType * > VertexListType
Definition: alu3dinclude.hh:300
GitterType::Geometric::hface3_GEO ImplementationType
Definition: alu3dinclude.hh:162
GitterType::hedge_STI InterfaceType
Definition: alu3dinclude.hh:180
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:275
GitterType::Geometric::hedge1_GEO GEOEdgeType
Definition: alu3dinclude.hh:84
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:285
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:299
ItemListType & getItemList()
Definition: alu3dinclude.hh:392
Definition: alu3dinclude.hh:406
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:168
IteratorType end()
Definition: alu3dinclude.hh:351
Definition: topology.hh:13
GitterType::Geometric::hasFace4 EntitySeedType
Definition: alu3dinclude.hh:149
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:133
GitterType::Geometric::hasFace3 HasFaceType
Definition: alu3dinclude.hh:215
void unsetUp2Date()
Definition: alu3dinclude.hh:385
#define ALU3DSPACE
Definition: alu3dinclude.hh:26
GitterImplType::Objects::hexa_IMPL IMPLElementType
Definition: alu3dinclude.hh:259
GitterType::Geometric::Hface3Rule HfaceRuleType
Definition: alu3dinclude.hh:216
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:188
GitterType::hface_STI HFaceType
Definition: alu3dinclude.hh:76
Definition: alu3dinclude.hh:329
GitterImplType::Objects::Hbnd4Default BNDFaceType
Definition: alu3dinclude.hh:264
Definition: alu3dinclude.hh:67
void setupVxList(const GridType &grid, int level)
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:151
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:191
IteratorType end()
Definition: alu3dinclude.hh:390
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:146
GitterImplType::Objects::Hbnd4Default GhostImplementationType
Definition: alu3dinclude.hh:152
GitterImplType::Objects::tetra_IMPL ImplementationType
Definition: alu3dinclude.hh:137
GitterType::vertex_STI InterfaceType
Definition: alu3dinclude.hh:190
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:235
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:234
GitterImplType::Objects::Hbnd3Default BNDFaceType
Definition: alu3dinclude.hh:217
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:178
ALU3dGridLeafVertexList()
Definition: alu3dinclude.hh:337
VertexListType & getItemList()
Definition: alu3dinclude.hh:319
bool up2Date() const
Definition: alu3dinclude.hh:309
ALU3DSPACE Gitter GitterType
Definition: alu3dinclude.hh:72
static const ALU3dImplTraits< hexa, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< hexa, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:416
Definition: alu3dinclude.hh:201
GitterType::Geometric::periodic3_GEO GEOPeriodicType
Definition: alu3dinclude.hh:214
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:148
GitterImplType::Objects::hexa_IMPL ImplementationType
Definition: alu3dinclude.hh:150
double alu3d_ctype
Definition: alu3dinclude.hh:59
ALU3dGridItemList()
Definition: alu3dinclude.hh:380
IteratorType begin()
Definition: alu3dinclude.hh:316
void setupVxList(const GridType &grid)
GitterType::hedge_STI HEdgeType
Definition: alu3dinclude.hh:77
GitterImplType::Objects::tetra_IMPL IMPLElementType
Definition: alu3dinclude.hh:212
GitterType::Geometric::hasFace4 HasFaceType
Definition: alu3dinclude.hh:262
static const int ProcessorBoundary_t
Definition: alu3dinclude.hh:46
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:335
Definition: alu3dinclude.hh:127
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:208
void unsetUp2Date()
Definition: alu3dinclude.hh:310
GitterType::Geometric::VertexGeo ImplementationType
Definition: alu3dinclude.hh:192
Ghost ghost
PartitionSet for the ghost partition.
Definition: partitionset.hh:238
GitterType::vertex_STI VertexType
Definition: alu3dinclude.hh:78
GitterType::helement_STI HElementType
Definition: alu3dinclude.hh:75
IteratorType end()
Definition: alu3dinclude.hh:317
std::pair< VertexType *, int > ItemType
Definition: alu3dinclude.hh:333
GitterImplType::Objects::hbndseg4_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:265
bool up2Date() const
Definition: alu3dinclude.hh:343
ALU3dGridVertexList()
Definition: alu3dinclude.hh:303
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:181
int getLevel(const VertexType &vertex) const
Definition: alu3dinclude.hh:355
ALU3DSPACE GitterDuneImpl GitterImplType
Definition: alu3dinclude.hh:73
GitterType::hbndseg_STI HBndSegType
Definition: alu3dinclude.hh:79
std::vector< void * > ItemListType
Definition: alu3dinclude.hh:377
static const ALU3dImplTraits< tetra, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< tetra, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:409
Definition: alu3dinclude.hh:296
Definition: common.hh:179
GitterType::ghostpair_STI GhostPairType
Definition: alu3dinclude.hh:80
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:207
GitterType::Geometric::HexaRule MarkRuleType
Definition: alu3dinclude.hh:267
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:254
GitterImplType::Objects::Hbnd3Default GhostImplementationType
Definition: alu3dinclude.hh:139
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:332
size_t size() const
Definition: alu3dinclude.hh:382
ItemListType::iterator IteratorType
Definition: alu3dinclude.hh:378
GitterType::Geometric::Hface4Rule HfaceRuleType
Definition: alu3dinclude.hh:263
GitterType::Geometric::tetra_GEO GEOElementType
Definition: alu3dinclude.hh:213
GitterType::Geometric::hedge1_GEO ImplementationType
Definition: alu3dinclude.hh:182
void unsetUp2Date()
Definition: alu3dinclude.hh:344
Definition: topology.hh:40
ALU3dGridItemList ALU3dGridItemListType
Definition: alu3dinclude.hh:399
static bool isGhost(const BndFaceType *ghost)
method for ghost check
Definition: alu3dinclude.hh:88
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:138
GitterType::Geometric::hface4_GEO ImplementationType
Definition: alu3dinclude.hh:172
size_t size() const
Definition: alu3dinclude.hh:307
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:258
GitterImplType::Objects::hbndseg3_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:218
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:171
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:132
GitterType::Geometric::hface4_GEO GEOFaceType
Definition: alu3dinclude.hh:257
VertexListType & getItemList()
Definition: alu3dinclude.hh:353
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:276
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:255
HElementType PllElementType
Definition: alu3dinclude.hh:82
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:135
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:301
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:244
Definition: alu3dinclude.hh:373
GitterType::Geometric::hface3_GEO GEOFaceType
Definition: alu3dinclude.hh:210
bool up2Date() const
Definition: alu3dinclude.hh:384
IteratorType begin()
Definition: alu3dinclude.hh:389
GitterType::Geometric::TetraRule MarkRuleType
Definition: alu3dinclude.hh:220
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:158
size_t size() const
Definition: alu3dinclude.hh:341
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:160
IteratorType begin()
Definition: alu3dinclude.hh:350