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>
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 alugrid_assert(EX)
Definition: alugrid_assert.hh:20
#define ALU3DSPACE
Definition: alu3dinclude.hh:7
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
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:138
GitterImplType::Objects::tetra_IMPL ImplementationType
Definition: alu3dinclude.hh:142
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:140
GitterType::Geometric::hasFace3 EntitySeedType
Definition: alu3dinclude.hh:141
GitterImplType::Objects::Hbnd3Default GhostImplementationType
Definition: alu3dinclude.hh:144
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:143
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:137
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:153
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:156
GitterImplType::Objects::hexa_IMPL ImplementationType
Definition: alu3dinclude.hh:155
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:150
GitterType::Geometric::hasFace4 EntitySeedType
Definition: alu3dinclude.hh:154
GitterImplType::Objects::Hbnd4Default GhostImplementationType
Definition: alu3dinclude.hh:157
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:151
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:163
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:173
GitterType::Geometric::hface4_GEO ImplementationType
Definition: alu3dinclude.hh:177
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:175
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:176
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:186
GitterType::hedge_STI InterfaceType
Definition: alu3dinclude.hh:185
GitterType::Geometric::hedge1_GEO ImplementationType
Definition: alu3dinclude.hh:187
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:183
GitterType::vertex_STI InterfaceType
Definition: alu3dinclude.hh:196
GitterType::Geometric::VertexGeo ImplementationType
Definition: alu3dinclude.hh:198
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:197
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:194
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
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
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:277
GitterType::Geometric::tetra_GEO GEOElementType
Definition: alu3dinclude.hh:254
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:249
GitterType::Geometric::TetraRule MarkRuleType
Definition: alu3dinclude.hh:261
GitterType::Geometric::hface3_GEO GEOFaceType
Definition: alu3dinclude.hh:251
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:267
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:248
GitterImplType::Objects::hbndseg3_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:259
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:268
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:288
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
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:316
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 >::GitterType GitterType
Definition: alu3dinclude.hh:287
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
GitterType::Geometric::hexa_GEO GEOElementType
Definition: alu3dinclude.hh:293
GitterImplType::Objects::hbndseg4_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:298
GitterType::Geometric::hasFace4 HasFaceType
Definition: alu3dinclude.hh:295
Definition: alu3dinclude.hh:328
std::vector< VertexType * > VertexListType
Definition: alu3dinclude.hh:331
VertexListType & getItemList()
Definition: alu3dinclude.hh:350
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
void setupVxList(const GridType &grid, int level)
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:332
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:330
Definition: alu3dinclude.hh:364
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
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:366
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
bool up2Date() const
Definition: alu3dinclude.hh:419
void markAsUp2Date()
Definition: alu3dinclude.hh:422
IteratorType end()
Definition: alu3dinclude.hh:425
ItemListType::iterator IteratorType
Definition: alu3dinclude.hh:413
size_t size() const
Definition: alu3dinclude.hh:417
ItemListType & getItemList()
Definition: alu3dinclude.hh:427
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< hexa, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< hexa, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:451
static const ALU3dImplTraits< tetra, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< tetra, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:444
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