Go to the documentation of this file. 1 #ifndef DUNE_ALUGRID_ALU3DINCLUDE_HH
2 #define DUNE_ALUGRID_ALU3DINCLUDE_HH
8 #define COMPILE_ALUGRID_LIB 0
10 #if COMPILE_ALUGRID_LIB
11 #define COMPILE_ALUGRID_INLINE 0
13 #define COMPILE_ALUGRID_INLINE 1
16 #if COMPILE_ALUGRID_INLINE
17 #define alu_inline inline
24 #define ALU3DSPACE ::ALUGrid::
28 #include <dune/alugrid/impl/serial/gatherscatter.hh>
29 #include <dune/alugrid/impl/serial/key.h>
30 #include <dune/alugrid/impl/serial/myalloc.h>
31 #include <dune/alugrid/impl/serial/serialize.h>
33 #include <dune/alugrid/impl/parallel/mpAccess.h>
34 #include <dune/alugrid/impl/parallel/gitter_pll_ldb.h>
36 #include <dune/alugrid/impl/serial/gitter_sti.h>
38 #include <dune/alugrid/impl/serial/gitter_hexa_top.h>
39 #include <dune/alugrid/impl/serial/mapp_tetra_3d_ext.h>
40 #include <dune/alugrid/impl/serial/gitter_tetra_top.h>
41 #include <dune/alugrid/impl/serial/walk.h>
42 #include <dune/alugrid/impl/serial/gitter_impl.h>
43 #include <dune/alugrid/impl/serial/gitter_mgb.h>
44 #include <dune/alugrid/impl/serial/key.h>
45 #include <dune/alugrid/impl/serial/lock.h>
47 #include <dune/alugrid/impl/duneinterface/gitter_dune_impl.h>
63 #include <dune/alugrid/impl/parallel/gitter_pll_sti.h>
64 #include <dune/alugrid/impl/parallel/gitter_pll_impl.h>
65 #include <dune/alugrid/impl/parallel/gitter_pll_ldb.h>
66 #include <dune/alugrid/impl/parallel/gitter_tetra_top_pll.h>
67 #include <dune/alugrid/impl/parallel/gitter_hexa_top_pll.h>
68 #include <dune/alugrid/impl/parallel/gitter_pll_mgb.h>
69 #include <dune/alugrid/impl/duneinterface/gitter_dune_pll_impl.h>
71 #if ALU3DGRID_PARALLEL
73 #include <dune/alugrid/impl/parallel/mpAccess_MPI.h>
74 #endif // #if ALU3DGRID_PARALLEL
91 template<
class Comm >
112 template <
class BndFaceType>
113 static bool isGhost(
const BndFaceType* ghost )
137 template <
class BndFaceType>
138 static bool isGhost(
const BndFaceType* ghost )
140 return ( ghost != 0 );
148 template< ALU3dGr
idElementType elType,
class Comm,
int dim,
int codim >
151 template<
class Comm,
int dim>
164 template<
class Comm,
int dim >
177 template<
class Comm,
int dim >
187 template<
class Comm,
int dim >
197 template< ALU3dGr
idElementType elType,
class Comm >
208 template< ALU3dGr
idElementType elType,
class Comm >
218 template< ALU3dGr
idElementType elType,
class Comm >
229 template<
class MarkRuleType, ALU3dGr
idElementType elType >
233 template<
class MarkRuleType >
237 enum { bisect_element_t = MarkRuleType::bisect };
238 enum { refine_element_t = MarkRuleType::regular };
239 enum { coarse_element_t = MarkRuleType::crs };
240 enum { nosplit_element_t = MarkRuleType::nosplit };
244 template<
class MarkRuleType >
248 enum { bisect_element_t = MarkRuleType::regular };
249 enum { refine_element_t = MarkRuleType::regular };
250 enum { coarse_element_t = MarkRuleType::crs };
251 enum { nosplit_element_t = MarkRuleType::nosplit };
258 template< ALU3dGr
idElementType elType,
class Comm >
261 template<
class Comm >
275 typedef typename GitterImplType::Objects::Hbnd3Default
BNDFaceType;
280 struct RefinementRules
287 template<
int dim,
int codim >
293 template <
class Elem>
296 return elem.myhface( aluFace );
300 template<
class Comm >
314 typedef typename GitterImplType::Objects::Hbnd4Default
BNDFaceType;
319 struct RefinementRules
326 template<
int dim,
int codim >
332 template <
class Elem>
335 return elem.myhface( aluFace );
343 template<
class Comm >
355 size_t size ()
const {
return vertexList_.size(); }
361 template <
class Gr
idType>
362 void setupVxList (
const GridType & grid,
int level);
379 template<
class Comm >
392 size_t size ()
const {
return vertexList_.size(); }
398 template <
class Gr
idType>
408 const int idx = vertex.getIndex();
411 const ItemType & p = vertexList_[idx];
413 return vertex.level();
434 size_t size ()
const {
return itemList_.size(); }
457 template<
class Comm >
477 #endif // #ifndef DUNE_ALUGRID_ALU3DINCLUDE_HH
std::pair< VertexType *, int > ItemType
Definition: alu3dinclude.hh:384
IteratorType end()
Definition: alu3dinclude.hh:442
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:284
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:183
Definition: alu3dinclude.hh:425
size_t size() const
Definition: alu3dinclude.hh:392
GitterType::vertex_STI InterfaceType
Definition: alu3dinclude.hh:223
GitterType::helement_STI HElementType
Definition: alu3dinclude.hh:125
ALU3DSPACE GitterDunePll GitterType
Definition: alu3dinclude.hh:122
GitterType::ghostpair_STI GhostPairType
Definition: alu3dinclude.hh:130
ALU3DSPACE GitterDunePll GitterImplType
Definition: alu3dinclude.hh:123
GitterType::Geometric::hexa_GEO GEOElementType
Definition: alu3dinclude.hh:310
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:294
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:180
Definition: alu3dinclude.hh:344
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:324
ALU3dGridItemList ALU3dGridItemListType
Definition: alu3dinclude.hh:451
GitterType::Geometric::Hface4Rule HfaceRuleType
Definition: alu3dinclude.hh:313
GitterType::Geometric::periodic3_GEO GEOPeriodicType
Definition: alu3dinclude.hh:272
Definition: topology.hh:12
void setupVxList(const GridType &grid, int level)
GitterType::Geometric::hasFace3 HasFaceType
Definition: alu3dinclude.hh:273
Definition: topology.hh:39
VertexListType & getItemList()
Definition: alu3dinclude.hh:404
GitterImplType::Objects::tetra_IMPL IMPLElementType
Definition: alu3dinclude.hh:270
ALU3DSPACE GitterDuneImpl GitterImplType
Definition: alu3dinclude.hh:98
Definition: alu3dinclude.hh:92
Gitter::AdaptRestrictProlong AdaptRestrictProlongType
Definition: alu3dinclude.hh:52
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:173
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:182
ALU3DSPACE Gitter GitterType
Definition: alu3dinclude.hh:97
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:347
GitterType::vertex_STI VertexType
Definition: alu3dinclude.hh:103
GitterType::Geometric::hface3_GEO GEOFaceType
Definition: alu3dinclude.hh:268
std::vector< ItemType > VertexListType
Definition: alu3dinclude.hh:385
HElementType PllElementType
Definition: alu3dinclude.hh:107
Definition: alu3dinclude.hh:259
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:349
GitterType::Geometric::VertexGeo ImplementationType
Definition: alu3dinclude.hh:225
Definition: topology.hh:12
void unsetUp2Date()
Definition: alu3dinclude.hh:358
GitterType::Geometric::VertexGeo ImplementationType
Definition: alu3dinclude.hh:215
GitterType::hedge_STI HEdgeType
Definition: alu3dinclude.hh:127
static const ALU3dImplTraits< hexa, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< hexa, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:468
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:200
VertexListType & getItemList()
Definition: alu3dinclude.hh:367
GitterType::vertex_STI InterfaceType
Definition: alu3dinclude.hh:213
IteratorType end()
Definition: alu3dinclude.hh:365
type of class for specialization of serial ALUGrid (No_Comm as communicator)
Definition: declaration.hh:30
GitterType::hbndseg_STI HBndSegType
Definition: alu3dinclude.hh:129
void unsetUp2Date()
Definition: alu3dinclude.hh:395
GitterType::Geometric::hasFace3 EntitySeedType
Definition: alu3dinclude.hh:158
GitterType::hface_STI InterfaceType
Definition: alu3dinclude.hh:192
std::pair< GEOFaceType *, int > NeighbourFaceType
Definition: alu3dinclude.hh:323
VertexListType::iterator IteratorType
Definition: alu3dinclude.hh:386
ALU3dGridItemList()
Definition: alu3dinclude.hh:432
static const GEOFaceType * getFace(const Elem &elem, const int aluFace)
Definition: alu3dinclude.hh:333
static bool isGhost(const BndFaceType *ghost)
method for ghost check
Definition: alu3dinclude.hh:113
bool up2Date() const
Definition: alu3dinclude.hh:357
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:203
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:265
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:224
double alu3d_ctype
Definition: alu3dinclude.hh:85
ALU3dGridVertexList()
Definition: alu3dinclude.hh:351
void unsetUp2Date()
Definition: alu3dinclude.hh:437
GitterType::Geometric::hedge1_GEO ImplementationType
Definition: alu3dinclude.hh:204
GitterType::vertex_STI VertexType
Definition: alu3dinclude.hh:128
ItemListType & getItemList()
Definition: alu3dinclude.hh:444
IteratorType begin()
Definition: alu3dinclude.hh:401
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:167
GitterType::hedge_STI HEdgeType
Definition: alu3dinclude.hh:102
GitterType::hbndseg_STI GhostInterfaceType
Definition: alu3dinclude.hh:160
GitterType::helement_STI HElementType
Definition: alu3dinclude.hh:100
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:221
size_t size() const
Definition: alu3dinclude.hh:355
#define alugrid_assert(EX)
Definition: alugrid_assert.hh:20
GitterType::hface_STI HFaceType
Definition: alu3dinclude.hh:101
ALU3dGridLeafVertexList()
Definition: alu3dinclude.hh:388
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:170
IteratorType end()
Definition: alu3dinclude.hh:402
Definition: alu3dinclude.hh:230
GitterType::hface_STI HFaceType
Definition: alu3dinclude.hh:126
GitterType::Geometric::hasFace4 EntitySeedType
Definition: alu3dinclude.hh:171
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:193
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:266
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:154
size_t size() const
Definition: alu3dinclude.hh:434
Definition: alu3dinclude.hh:380
GitterType::Geometric::hedge1_GEO GEOEdgeType
Definition: alu3dinclude.hh:109
GitterType::Geometric::tetra_GEO GEOElementType
Definition: alu3dinclude.hh:271
GitterType::ghostpair_STI GhostPairType
Definition: alu3dinclude.hh:105
IteratorType begin()
Definition: alu3dinclude.hh:364
std::pair< HasFaceType *, int > NeighbourPairType
Definition: alu3dinclude.hh:285
GitterType::Geometric::hasFace4 HasFaceType
Definition: alu3dinclude.hh:312
ALU3DSPACE ElementPllXIF_t PllElementType
Definition: alu3dinclude.hh:132
GatherScatter GatherScatterType
Definition: alu3dinclude.hh:57
bool up2Date() const
Definition: alu3dinclude.hh:394
IteratorType begin()
Definition: alu3dinclude.hh:441
GitterType::Geometric::HexaRule MarkRuleType
Definition: alu3dinclude.hh:317
#define ALU3DSPACE
Definition: alu3dinclude.hh:24
static const int ProcessorBoundary_t
Definition: alu3dinclude.hh:54
void setupVxList(const GridType &grid)
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:269
GitterType::hbndseg_STI HBndSegType
Definition: alu3dinclude.hh:104
Definition: alu3dinclude.hh:49
std::vector< VertexType * > VertexListType
Definition: alu3dinclude.hh:348
static bool isGhost(const BndFaceType *ghost)
Definition: alu3dinclude.hh:138
Definition: alu3dinclude.hh:458
GitterImplType::Objects::hbndseg4_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:315
std::vector< void * > ItemListType
Definition: alu3dinclude.hh:429
type of class for specialization of parallel ALUGrid (MPI_Comm as communicator)
Definition: declaration.hh:39
GitterImplType::Objects::hbndseg3_IMPL ImplBndFaceType
Definition: alu3dinclude.hh:276
GitterType::Geometric::hedge1_GEO GEOEdgeType
Definition: alu3dinclude.hh:134
GitterImplType::Objects::Hbnd3Default BNDFaceType
Definition: alu3dinclude.hh:275
ItemListType ::iterator IteratorType
Definition: alu3dinclude.hh:430
GitterType::Geometric::VertexGeo GEOVertexType
Definition: alu3dinclude.hh:308
ALU3dBasicImplTraits< Comm >::VertexType VertexType
Definition: alu3dinclude.hh:383
GitterType::Geometric::hface4_GEO GEOFaceType
Definition: alu3dinclude.hh:307
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:305
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:211
GitterType::hedge_STI InterfaceType
Definition: alu3dinclude.hh:202
InterfaceType EntitySeedType
Definition: alu3dinclude.hh:214
GitterType::Geometric::TetraRule MarkRuleType
Definition: alu3dinclude.hh:278
void markAsUp2Date()
Definition: alu3dinclude.hh:439
GitterImplType::Objects::hexa_IMPL IMPLElementType
Definition: alu3dinclude.hh:309
int getLevel(const VertexType &vertex) const
Definition: alu3dinclude.hh:406
GitterType::Geometric::periodic4_GEO GEOPeriodicType
Definition: alu3dinclude.hh:311
GitterType::Geometric::hface4_GEO ImplementationType
Definition: alu3dinclude.hh:194
Definition: alu3dinclude.hh:149
Definition: alu3dinclude.hh:79
GitterImplType::Objects::hexa_IMPL ImplementationType
Definition: alu3dinclude.hh:172
GitterImplType::Objects::Hbnd3Default GhostImplementationType
Definition: alu3dinclude.hh:161
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:304
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:155
static const ALU3dImplTraits< tetra, Comm >::GEOFaceType * getFace(const typename ALU3dImplTraits< tetra, Comm >::GEOElementType &elem, int index)
Definition: alu3dinclude.hh:461
ALU3dBasicImplTraits< Comm >::GitterImplType GitterImplType
Definition: alu3dinclude.hh:168
ALU3dBasicImplTraits< Comm >::GitterType GitterType
Definition: alu3dinclude.hh:190
GitterType::Geometric::Hface3Rule HfaceRuleType
Definition: alu3dinclude.hh:274
bool up2Date() const
Definition: alu3dinclude.hh:436
GitterType::Geometric::hface3_GEO ImplementationType
Definition: alu3dinclude.hh:184
GitterImplType::Objects::Hbnd4Default BNDFaceType
Definition: alu3dinclude.hh:314
GitterImplType::Objects::Hbnd4Default GhostImplementationType
Definition: alu3dinclude.hh:174
GitterImplType::Objects::tetra_IMPL ImplementationType
Definition: alu3dinclude.hh:159
GitterType::helement_STI InterfaceType
Definition: alu3dinclude.hh:157