1 #ifndef DUNE_ALU3DINCLUDE_HH
2 #define DUNE_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 ALUGridSpace ::
26 #include <dune/common/mpicollectivecommunication.hh>
31 #if ALU3DGRID_PARALLEL
32 #include <alugrid_parallel.h>
35 #include <alugrid_serial.h>
41 namespace ALUGridSpace
64 template<
class Comm >
85 template <
class BndFaceType>
86 static bool isGhost(
const BndFaceType* ghost )
92 #if ALU3DGRID_PARALLEL
94 struct ALU3dBasicImplTraits< MPI_Comm >
97 typedef ALU3DSPACE GitterDunePll GitterImplType;
99 typedef GitterType::helement_STI HElementType;
100 typedef GitterType::hface_STI HFaceType;
101 typedef GitterType::hedge_STI HEdgeType;
102 typedef GitterType::vertex_STI VertexType;
103 typedef GitterType::hbndseg_STI HBndSegType;
104 typedef GitterType::ghostpair_STI GhostPairType;
106 typedef ALU3DSPACE ElementPllXIF_t PllElementType;
108 typedef GitterType::Geometric::hedge1_GEO GEOEdgeType;
111 template <
class BndFaceType>
112 static bool isGhost(
const BndFaceType* ghost )
114 return ( ghost != 0 );
117 #endif // #if ALU3DGRID_PARALLEL
124 template< ALU3dGr
idElementType elType,
class Comm,
int codim >
127 template<
class Comm >
140 template<
class Comm >
153 template<
class Comm >
163 template<
class Comm >
173 template< ALU3dGr
idElementType elType,
class Comm >
183 template< ALU3dGr
idElementType elType,
class Comm >
198 template< ALU3dGr
idElementType elType,
class Comm >
201 template<
class Comm >
215 typedef typename GitterImplType::Objects::Hbnd3Default
BNDFaceType;
221 enum { bisect_element_t =
222 #ifdef ALUGRID_PERIODIC_BOUNDARY_PARALLEL
228 enum { refine_element_t = MarkRuleType::iso8 };
229 enum { coarse_element_t = MarkRuleType::crs };
230 enum { nosplit_element_t = MarkRuleType::nosplit };
235 template<
int codim >
241 template <
class Elem>
242 static const GEOFaceType* getFace(
const Elem& elem,
const int aluFace )
244 return elem.myhface3( aluFace );
248 template<
class Comm >
262 typedef typename GitterImplType::Objects::Hbnd4Default
BNDFaceType;
268 enum { refine_element_t = MarkRuleType::iso8 };
269 enum { bisect_element_t = MarkRuleType::iso8 };
270 enum { coarse_element_t = MarkRuleType::crs };
271 enum { nosplit_element_t = MarkRuleType::nosplit };
276 template<
int codim >
282 template <
class Elem>
283 static const GEOFaceType* getFace(
const Elem& elem,
const int aluFace )
285 return elem.myhface4( aluFace );
293 template<
class Comm >
305 size_t size ()
const {
return vertexList_.size(); }
311 template <
class Gr
idType>
312 void setupVxList (
const GridType & grid,
int level);
326 template<
class Comm >
339 size_t size ()
const {
return vertexList_.size(); }
345 template <
class Gr
idType>
355 const int idx = vertex.getIndex();
357 assert( idx < (
int)
size());
358 const ItemType & p = vertexList_[idx];
360 return vertex.level();
380 size_t size ()
const {
return itemList_.size(); }
403 template<
class Comm >
409 assert(index >= 0 && index < 4);
416 assert(index >= 0 && index < 6);
423 #endif // #ifndef DUNE_ALU3DINCLUDE_HH