1 #ifndef DUNE_ALUGRID_ALU3DINCLUDE_HH
2 #define DUNE_ALUGRID_ALU3DINCLUDE_HH
7 #define ALU3DSPACE ::ALUGrid::
11 #include <dune/alugrid/impl/serial/gatherscatter.hh>
12 #include <dune/alugrid/impl/serial/key.h>
13 #include <dune/alugrid/impl/serial/myalloc.h>
14 #include <dune/alugrid/impl/serial/serialize.h>
16 #include <dune/alugrid/impl/parallel/mpAccess.h>
17 #include <dune/alugrid/impl/parallel/gitter_pll_ldb.h>
19 #include <dune/alugrid/impl/serial/gitter_sti.h>
21 #include <dune/alugrid/impl/serial/gitter_hexa_top.h>
22 #include <dune/alugrid/impl/serial/mapp_tetra_3d_ext.h>
23 #include <dune/alugrid/impl/serial/gitter_tetra_top.h>
24 #include <dune/alugrid/impl/serial/walk.h>
25 #include <dune/alugrid/impl/serial/gitter_impl.h>
26 #include <dune/alugrid/impl/serial/gitter_mgb.h>
27 #include <dune/alugrid/impl/serial/key.h>
28 #include <dune/alugrid/impl/serial/lock.h>
30 #include <dune/alugrid/impl/duneinterface/gitter_dune_impl.h>
46 #include <dune/alugrid/impl/parallel/gitter_pll_sti.h>
47 #include <dune/alugrid/impl/parallel/gitter_pll_impl.h>
48 #include <dune/alugrid/impl/parallel/gitter_pll_ldb.h>
49 #include <dune/alugrid/impl/parallel/gitter_tetra_top_pll.h>
50 #include <dune/alugrid/impl/parallel/gitter_hexa_top_pll.h>
51 #include <dune/alugrid/impl/parallel/gitter_pll_mgb.h>
52 #include <dune/alugrid/impl/duneinterface/gitter_dune_pll_impl.h>
54 #if ALU3DGRID_PARALLEL
56 #include <dune/alugrid/impl/parallel/mpAccess_MPI.h>
74 template<
class Comm >
95 template <
class BndFaceType>
96 static bool isGhost(
const BndFaceType* ghost )
120 template <
class BndFaceType>
121 static bool isGhost(
const BndFaceType* ghost )
123 return ( ghost != 0 );
131 template< ALU3dGr
idElementType elType,
class Comm,
int dim,
int codim >
134 template<
class Comm,
int dim>
147 template<
class Comm,
int dim >
160 template<
class Comm,
int dim >
170 template<
class Comm,
int dim >
180 template< ALU3dGr
idElementType elType,
class Comm >
191 template< ALU3dGr
idElementType elType,
class Comm >
201 template< ALU3dGr
idElementType elType,
class Comm >
212 template<
class MarkRuleType, ALU3dGr
idElementType elType >
216 template<
class MarkRuleType >
220 enum { bisect_element_t = MarkRuleType::bisect };
221 enum { refine_element_t = MarkRuleType::regular };
222 enum { coarse_element_t = MarkRuleType::crs };
223 enum { nosplit_element_t = MarkRuleType::nosplit };
227 template<
class MarkRuleType >
231 enum { bisect_element_t = MarkRuleType::regular };
232 enum { refine_element_t = MarkRuleType::regular };
233 enum { coarse_element_t = MarkRuleType::crs };
234 enum { nosplit_element_t = MarkRuleType::nosplit };
241 template< ALU3dGr
idElementType elType,
class Comm >
244 template<
class Comm >
258 typedef typename GitterImplType::Objects::Hbnd3Default
BNDFaceType;
263 struct RefinementRules
270 template<
int dim,
int codim >
276 template <
class Elem>
279 return elem.myhface( aluFace );
283 template<
class Comm >
297 typedef typename GitterImplType::Objects::Hbnd4Default
BNDFaceType;
302 struct RefinementRules
309 template<
int dim,
int codim >
315 template <
class Elem>
318 return elem.myhface( aluFace );
326 template<
class Comm >
338 size_t size ()
const {
return vertexList_.size(); }
344 template <
class Gr
idType>
362 template<
class Comm >
375 size_t size ()
const {
return vertexList_.size(); }
381 template <
class Gr
idType>
391 const int idx = vertex.getIndex();
394 const ItemType & p = vertexList_[idx];
396 return vertex.level();
417 size_t size ()
const {
return itemList_.size(); }
440 template<
class Comm >
#define ALU3DSPACE
Definition: alu3dinclude.hh:7
#define alugrid_assert(EX)
Definition: alugrid_assert.hh:20
Definition: alu3dinclude.hh:33
Gitter::AdaptRestrictProlong AdaptRestrictProlongType
Definition: alu3dinclude.hh:35
static const int ProcessorBoundary_t
Definition: alu3dinclude.hh:37
GatherScatter GatherScatterType
Definition: alu3dinclude.hh:40
Definition: alu3dinclude.hh:63
@ hexa
Definition: topology.hh:12
@ tetra
Definition: topology.hh:12
double alu3d_ctype
Definition: alu3dinclude.hh:68
ALU3dGridItemList ALU3dGridItemListType
Definition: alu3dinclude.hh:434
Definition: alu3dinclude.hh:75
GitterType::helement_STI HElementType
Definition: alu3dinclude.hh:83
GitterType::hface_STI HFaceType
Definition: alu3dinclude.hh:84
ALU3DSPACE GitterDuneImpl GitterImplType
Definition: alu3dinclude.hh:81
static bool isGhost(const BndFaceType *ghost)
method for ghost check
Definition: alu3dinclude.hh:96
HElementType PllElementType
Definition: alu3dinclude.hh:90
GitterType::hbndseg_STI HBndSegType
Definition: alu3dinclude.hh:87
GitterType::ghostpair_STI GhostPairType
Definition: alu3dinclude.hh:88
GitterType::vertex_STI VertexType
Definition: alu3dinclude.hh:86
GitterType::hedge_STI HEdgeType
Definition: alu3dinclude.hh:85
ALU3DSPACE Gitter GitterType
Definition: alu3dinclude.hh:80
GitterType::Geometric::hedge1_GEO GEOEdgeType
Definition: alu3dinclude.hh:92
static bool isGhost(const BndFaceType *ghost)
Definition: alu3dinclude.hh:121
GitterType::hbndseg_STI HBndSegType
Definition: alu3dinclude.hh:112
ALU3DSPACE GitterDunePll GitterType
Definition: alu3dinclude.hh:105
GitterType::vertex_STI VertexType
Definition: alu3dinclude.hh:111
ALU3DSPACE GitterDunePll GitterImplType
Definition: alu3dinclude.hh:106
GitterType::helement_STI HElementType
Definition: alu3dinclude.hh:108
ALU3DSPACE ElementPllXIF_t PllElementType
Definition: alu3dinclude.hh:115
GitterType::ghostpair_STI GhostPairType
Definition: alu3dinclude.hh:113
GitterType::Geometric::hedge1_GEO GEOEdgeType
Definition: alu3dinclude.hh:117
GitterType::hedge_STI HEdgeType
Definition: alu3dinclude.hh:110
GitterType::hface_STI HFaceType
Definition: alu3dinclude.hh:109
Definition: alu3dinclude.hh:132
GitterImplType::Objects::tetra_IMPL ImplementationType
Definition: alu3dinclude.hh:142
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:140
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:137
GitterType::Geometric::hasFace3 EntitySeedType
Definition: alu3dinclude.hh:141
GitterImplType::Objects::Hbnd3Default GhostImplementationType
Definition: alu3dinclude.hh:144
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:138
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:143
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:153
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:150
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:156
GitterImplType::Objects::hexa_IMPL ImplementationType
Definition: alu3dinclude.hh:155
GitterType::Geometric::hasFace4 EntitySeedType
Definition: alu3dinclude.hh:154
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:151
GitterImplType::Objects::Hbnd4Default GhostImplementationType
Definition: alu3dinclude.hh:157
GitterType::Geometric::hface3_GEO ImplementationType
Definition: alu3dinclude.hh:167
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:165
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:166
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:163
GitterType::Geometric::hface4_GEO ImplementationType
Definition: alu3dinclude.hh:177
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:175
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:173
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:176
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:186
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:183
GitterType::hedge_STI InterfaceType
Definition: alu3dinclude.hh:185
GitterType::Geometric::hedge1_GEO ImplementationType
Definition: alu3dinclude.hh:187
GitterType::vertex_STI InterfaceType
Definition: alu3dinclude.hh:196
GitterType::Geometric::VertexGeo ImplementationType
Definition: alu3dinclude.hh:198
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:194
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:197
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:207
GitterType::Geometric::VertexGeo ImplementationType
Definition: alu3dinclude.hh:208
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:204
GitterType::vertex_STI InterfaceType
Definition: alu3dinclude.hh:206
Definition: alu3dinclude.hh:213
Definition: alu3dinclude.hh:242
GitterType::Geometric::hasFace3 HasFaceType
Definition: alu3dinclude.hh:256
GitterType::Geometric::Hface3Rule HfaceRuleType
Definition: alu3dinclude.hh:257
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:248
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:249
GitterImplType::Objects::tetra_IMPL IMPLElementType
Definition: alu3dinclude.hh:253
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:252
GitterImplType::Objects::Hbnd3Default BNDFaceType
Definition: alu3dinclude.hh:258
GitterType::Geometric::periodic3_GEO GEOPeriodicType
Definition: alu3dinclude.hh:255
GitterType::Geometric::tetra_GEO GEOElementType
Definition: alu3dinclude.hh:254
GitterType::Geometric::TetraRule MarkRuleType
Definition: alu3dinclude.hh:261
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:277
GitterType::Geometric::hface3_GEO GEOFaceType
Definition: alu3dinclude.hh:251
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:267
GitterImplType::Objects::hbndseg3_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:259
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:268
GitterType::Geometric::Hface4Rule HfaceRuleType
Definition: alu3dinclude.hh:296
GitterImplType::Objects::Hbnd4Default BNDFaceType
Definition: alu3dinclude.hh:297
GitterType::Geometric::hface4_GEO GEOFaceType
Definition: alu3dinclude.hh:290
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:307
GitterType::Geometric::periodic4_GEO GEOPeriodicType
Definition: alu3dinclude.hh:294
GitterType::Geometric::HexaRule MarkRuleType
Definition: alu3dinclude.hh:300
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:288
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:306
GitterImplType::Objects::hexa_IMPL IMPLElementType
Definition: alu3dinclude.hh:292
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:291
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:287
GitterType::Geometric::hexa_GEO GEOElementType
Definition: alu3dinclude.hh:293
GitterImplType::Objects::hbndseg4_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:298
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:316
GitterType::Geometric::hasFace4 HasFaceType
Definition: alu3dinclude.hh:295
Definition: alu3dinclude.hh:328
std::vector< VertexType * > VertexListType
Definition: alu3dinclude.hh:331
ALU3dGridVertexList()
Definition: alu3dinclude.hh:334
bool up2Date() const
Definition: alu3dinclude.hh:340
void unsetUp2Date()
Definition: alu3dinclude.hh:341
IteratorType begin()
Definition: alu3dinclude.hh:347
IteratorType end()
Definition: alu3dinclude.hh:348
size_t size() const
Definition: alu3dinclude.hh:338
VertexListType & getItemList()
Definition: alu3dinclude.hh:350
void setupVxList(const GridType &grid, int level)
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:330
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:332
Definition: alu3dinclude.hh:364
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:366
std::pair< VertexType *, int > ItemType
Definition: alu3dinclude.hh:367
ALU3dGridLeafVertexList()
Definition: alu3dinclude.hh:371
void setupVxList(const GridType &grid)
void unsetUp2Date()
Definition: alu3dinclude.hh:378
IteratorType begin()
Definition: alu3dinclude.hh:384
VertexListType & getItemList()
Definition: alu3dinclude.hh:387
std::vector< ItemType > VertexListType
Definition: alu3dinclude.hh:368
IteratorType end()
Definition: alu3dinclude.hh:385
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:369
int getLevel(const VertexType &vertex) const
Definition: alu3dinclude.hh:389
bool up2Date() const
Definition: alu3dinclude.hh:377
size_t size() const
Definition: alu3dinclude.hh:375
Definition: alu3dinclude.hh:409
ItemListType ::iterator IteratorType
Definition: alu3dinclude.hh:413
bool up2Date() const
Definition: alu3dinclude.hh:419
ItemListType & getItemList()
Definition: alu3dinclude.hh:427
void markAsUp2Date()
Definition: alu3dinclude.hh:422
IteratorType end()
Definition: alu3dinclude.hh:425
size_t size() const
Definition: alu3dinclude.hh:417
IteratorType begin()
Definition: alu3dinclude.hh:424
ALU3dGridItemList()
Definition: alu3dinclude.hh:415
void unsetUp2Date()
Definition: alu3dinclude.hh:420
std::vector< void * > ItemListType
Definition: alu3dinclude.hh:412
Definition: alu3dinclude.hh:442
static const ALU3dImplTraits< tetra, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< tetra, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:444
static const ALU3dImplTraits< hexa, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< hexa, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:451
Definition: topology.hh:40
type of class for specialization of serial ALUGrid (No_Comm as communicator)
Definition: declaration.hh:31
type of class for specialization of parallel ALUGrid (MPI_Comm as communicator)
Definition: declaration.hh:43