Go to the documentation of this file. 1 #ifndef DUNE_ALU3DGRIDDATAHANDLE_HH
2 #define DUNE_ALU3DGRIDDATAHANDLE_HH
8 #include <dune/common/version.hh>
10 #include <dune/grid/common/grid.hh>
11 #include <dune/grid/common/adaptcallback.hh>
23 template<
class Gr
idType,
class DataCollectorType,
int codim >
25 :
public GatherScatter
30 typedef typename GridType::template Codim<codim>::Entity
EntityType;
33 typedef typename GridType::MPICommunicatorType
Comm;
36 typedef typename ImplTraits::template Codim< dimension, codim >::ImplementationType
ImplElementType;
37 typedef typename ImplTraits::template Codim< dimension, codim >::InterfaceType
HElementType;
42 DataCollectorType &
dc_;
48 typedef typename DataCollectorType:: DataType
DataType;
50 using GatherScatter :: setData ;
51 using GatherScatter :: sendData ;
52 using GatherScatter :: recvData ;
53 using GatherScatter :: containsItem ;
74 return dc_.contains(dim,cd);
90 std::cerr <<
"DataHandle.contains called with non-matching dim and codim" << std::endl;
166 template <
class Gr
idType,
class DataCollectorType >
171 enum { dim = GridType::dimension };
173 typedef typename GridType::template Codim<0>::Entity
EntityType;
176 typedef typename GridType::MPICommunicatorType
Comm;
179 typedef typename ImplTraits::template Codim< dim, codim >::ImplementationType
ImplElementType;
180 typedef typename ImplTraits::template Codim< dim, codim >::InterfaceType
HElementType;
182 typedef typename ImplTraits::template Codim< dim, 1 >::InterfaceType
HFaceType;
184 typedef typename ImplTraits::template Codim< dim, codim >::GhostInterfaceType
HGhostType;
185 typedef typename ImplTraits::template Codim< dim, codim >::GhostImplementationType
ImplGhostType;
201 using GatherScatter :: setData ;
202 using GatherScatter :: sendData ;
203 using GatherScatter :: recvData ;
207 using GatherScatter :: containsItem ;
219 return dc_.contains(dim,codim);
225 return elem.isLeafEntity();
229 virtual bool containsItem (
const HGhostType & ghost)
const = 0;
235 realEntity_.setElement( const_cast<HElementType &> (elem) );
249 realEntity_.setGhost( const_cast <HGhostType &> (ghost) );
297 size_t size =
dc_.size( en );
304 template<
class Gr
idType,
class DataCollectorType,
int codim >
308 enum { dim = GridType :: dimension };
311 typedef typename GridType::template Codim<codim>::Entity
EntityType;
312 typedef typename GridType::template Codim<codim>::EntityImp
RealEntityType;
314 typedef typename GridType::MPICommunicatorType
Comm;
317 typedef typename ImplTraits::template Codim< dim, codim >::ImplementationType IMPLElementType;
318 typedef typename ImplTraits::template Codim< dim, codim >::InterfaceType
HElementType;
320 typedef typename ImplTraits::template Codim< dim, 1 >::InterfaceType HFaceType;
322 typedef typename ImplTraits::template Codim< dim, 0 >::GhostInterfaceType HGhostType;
323 typedef typename ImplTraits::template Codim< dim, 0 >::GhostImplementationType ImplGhostType;
325 typedef typename ImplTraits::PllElementType PllElementType;
341 if( (codim == dim) && dc.contains(dim,codim) )
345 grid.getLeafVertexList();
352 return (dim == 2 ? elem.is2d() :
true) && elem.isLeafEntity();
360 return ghost.isLeafEntity();
366 return (dim == 2 ? face.is2d() :
true) && face.isInteriorLeaf();
372 return (dim == 2 ? face.is2d() :
true) && pll.ghostLeaf();
383 template <
class Gr
idType,
class DataCollectorType ,
int codim >
387 enum { dim = GridType::dimension };
389 typedef typename GridType::template Codim<codim>::Entity
EntityType;
390 typedef typename GridType::template Codim<codim>::EntityImp
RealEntityType;
392 typedef typename GridType::MPICommunicatorType
Comm;
395 typedef typename ImplTraits::template Codim< dim, codim >::ImplementationType IMPLElementType;
396 typedef typename ImplTraits::template Codim< dim, codim >::InterfaceType
HElementType;
398 typedef typename ImplTraits::template Codim< dim, 1 >::InterfaceType HFaceType;
400 typedef typename ImplTraits::template Codim< dim, 0 >::GhostInterfaceType HGhostType;
401 typedef typename ImplTraits::template Codim< dim, 0 >::GhostImplementationType ImplGhostType;
403 typedef typename ImplTraits::PllElementType PllElementType;
405 typedef typename GridType::LevelIndexSetImp LevelIndexSetImp;
407 const LevelIndexSetImp & levelSet_;
416 const LevelIndexSetImp & levelSet,
const int level)
417 :
BaseType(grid,en,realEntity,dc) , levelSet_(levelSet) , level_(level)
424 return (dim == 2 ? elem.is2d() :
true) && levelSet_.containsIndex(codim, elem.getIndex() );
437 template <
class Gr
idType,
class DataCollectorType ,
int codim >
441 enum { dim = GridType::dimension };
443 typedef typename GridType::template Codim<codim>::Entity
EntityType;
444 typedef typename GridType::template Codim<codim>::EntityImp
RealEntityType;
446 typedef typename GridType::MPICommunicatorType
Comm;
450 typedef typename ImplTraits::template Codim< 2, codim >::ImplementationType IMPLElementType;
451 typedef typename ImplTraits::template Codim< 2, codim >::InterfaceType
HElementType;
453 typedef typename ImplTraits::template Codim< 3, codim >::ImplementationType RealIMPLElementType;
454 typedef typename ImplTraits::template Codim< 3, codim >::InterfaceType RealHElementType;
456 typedef typename ImplTraits::template Codim< dim, 1 >::InterfaceType HFaceType;
458 typedef typename ImplTraits::template Codim< dim, 0 >::GhostInterfaceType HGhostType;
459 typedef typename ImplTraits::template Codim< dim, 0 >::GhostImplementationType ImplGhostType;
461 typedef typename ImplTraits::PllElementType PllElementType;
463 typedef typename GridType::LevelIndexSetImp LevelIndexSetImp;
472 const LevelIndexSetImp & levelSet,
const int level)
516 template <
class Gr
idType,
class DataCollectorType>
521 enum { dim = GridType:: dimension };
523 typedef typename GridType::template Codim<codim>::Entity
EntityType;
524 typedef typename GridType::template Codim<codim>::EntityImp
RealEntityType;
526 typedef typename GridType::MPICommunicatorType
Comm;
529 typedef typename ImplTraits::template Codim< dim, codim >::ImplementationType IMPLElementType;
530 typedef typename ImplTraits::template Codim< dim, codim >::InterfaceType
HElementType;
532 typedef typename ImplTraits::template Codim< dim, 1 >::InterfaceType
HFaceType;
534 typedef typename ImplTraits::template Codim< dim, 0 >::GhostInterfaceType
HGhostType;
535 typedef typename ImplTraits::template Codim< dim, 0 >::GhostImplementationType
ImplGhostType;
539 typedef typename GridType::LevelIndexSetImp LevelIndexSetImp;
541 const LevelIndexSetImp & levelSet_;
547 const LevelIndexSetImp & levelSet,
const int level)
548 :
BaseType(grid,en,realEntity,dc) , levelSet_(levelSet) , level_(level) {}
553 return levelSet_.containsIndex(codim, elem.getIndex() );
567 if(face.level() != level_)
return false;
570 typedef Gitter::hbndseg_STI HBndSegType;
573 std::pair< HElementType *, HBndSegType * > p( (
HElementType *)0, (HBndSegType *)0 );
574 pll.getAttachedElement( p );
577 bool contained = (p.first->level() == level_);
586 if(face.level() != level_)
return false;
588 return (pll.ghostLevel() == level_);
598 template <
class Gr
idType,
class LoadBalanceHandleType,
bool useExternal>
602 typedef typename GridType::MPICommunicatorType
Comm;
605 typedef typename ImplTraits::template Codim< GridType::dimension, 0 >::InterfaceType
HElementType;
607 typedef typename GridType :: template Codim< 0 > :: Entity
EntityType ;
608 typedef typename GridType :: template Codim< 0 > :: EntityImp
EntityImpType ;
610 template <
bool useHandlerOpts,
typename D =
void>
614 std::set<int>& ranks )
const
616 return lb.importRanks( ranks );
629 template <
typename D>
633 std::set<int>& ranks )
const
669 LoadBalanceHandleType& ldb)
737 static const bool useWeights = std::is_same<LoadBalanceHandleType, GatherScatter> :: value == false ;
744 GridType::getRealImplementation(
entity_ ).setElement( elem );
767 template <
class Gr
idType,
class LoadBalanceHandleType,
class DataHandleImpl,
class Data,
bool useExternal>
779 template<
int codim >
787 typedef typename GridType::MPICommunicatorType
Comm;
795 template <
class DH,
bool>
798 static DataHandleImpl&
asImp( DH& dh ) {
return static_cast<DataHandleImpl &> (dh); }
802 asImp( dataHandle ).reserveMemory( newElements );
806 asImp( dataHandle ).compress();
818 static const bool hasCompressAndReserve = std::is_base_of< LoadBalanceHandleWithReserveAndCompress, DataHandleImpl >::value;
837 int maxLevel =
grid_.maxLevel();
838 maxLevel =
grid_.comm().max( maxLevel );
839 return maxLevel ==
grid_.maxLevel();
845 LoadBalanceHandleType& ldb)
883 std::cerr <<
"DataHandle.contains called with non-matching dim and codim" << std::endl;
896 str.write(estimatedElements);
911 int newElements = 0 ;
912 str.read( newElements );
937 for(
HElementType* son = elem.down(); son ; son = son->next() )
946 elem.resetRefinedTag();
948 for(
HElementType* son = elem.down(); son ; son = son->next() )
957 inlineEntityData<0>( stream, element );
961 inlineCodimData< 1 >( stream, element );
962 inlineCodimData< 2 >( stream, element );
964 inlineCodimData< dimension >( stream, element );
972 xtractEntityData<0>( stream, element );
976 xtractCodimData< 1 >( stream, element );
977 xtractCodimData< 2 >( stream, element );
979 xtractCodimData< dimension >( stream, element );
985 #if DUNE_VERSION_NEWER_REV(DUNE_GRID,2,4,0)
986 return element.subEntities( codim );
988 return element.template count< codim > ();
992 template<
int codim >
997 const int numSubEntities = this->
template subEntities< codim >( element );
998 for(
int i = 0; i < numSubEntities; ++i )
1000 #if DUNE_VERSION_NEWER(DUNE_GRID,2,4)
1001 inlineEntityData< codim >( stream, element.template subEntity< codim >( i ) );
1004 const EntityPointer pEntity = element.template subEntity< codim >( i );
1005 inlineEntityData< codim >( stream, *pEntity );
1011 template<
int codim >
1016 const int numSubEntities = this->
template subEntities< codim >( element );
1017 for(
int i = 0; i < numSubEntities; ++i )
1019 #if DUNE_VERSION_NEWER(DUNE_GRID,2,4)
1020 xtractEntityData< codim >( stream, element.template subEntity< codim >( i ) );
1023 const EntityPointer pEntity = element.template subEntity< codim >( i );
1024 xtractEntityData< codim >( stream, *pEntity );
1030 template<
int codim >
1037 stream.write( size );
1042 template<
int codim >
1049 stream.read( size );
1060 template<
class Gr
idType,
class AdaptDataHandle >
1065 typedef typename GridType::template Codim<0>::Entity EntityType;
1066 typedef typename GridType::template Codim<0>::EntityImp RealEntityType;
1070 AdaptDataHandle &rp_;
1072 typedef typename GridType::MPICommunicatorType Comm;
1075 typedef typename ImplTraits::HElementType HElementType;
1076 typedef typename ImplTraits::HBndSegType HBndSegType;
1077 typedef typename ImplTraits::BNDFaceType BNDFaceType;
1085 AdaptDataHandle &rp )
1087 , entity_( RealEntityType() )
1099 grid_.getRealImplementation( entity_ ).setElement( father );
1100 rp_.preCoarsening( entity_ );
1103 father.resetRefinedTag();
1110 grid_.getRealImplementation( entity_ ).setElement( father );
1111 rp_.postRefinement( entity_ );
1114 father.resetRefinedTag();
1115 for( HElementType *son = father.down(); son ; son = son->next() )
1116 son->resetRefinedTag();
1131 template<
class Gr
idType,
class AdaptDataHandle,
class GlobalIdSetImp >
1136 GlobalIdSetImp & set_;
1137 typedef typename GridType::template Codim<0>::Entity EntityType;
1138 typedef typename GridType::template Codim<0>::EntityImp RealEntityType;
1140 typedef typename GridType::MPICommunicatorType Comm;
1143 typedef typename ImplTraits::HElementType HElementType;
1144 typedef typename ImplTraits::HBndSegType HBndSegType;
1146 using AdaptRestrictProlongType :: postRefinement ;
1147 using AdaptRestrictProlongType :: preCoarsening ;
1152 AdaptDataHandle &rp,
1153 GlobalIdSetImp & set )
1163 set_.postRefinement( elem );
1164 return BaseType :: postRefinement(elem );
1170 #endif // #ifndef DUNE_ALU3DGRIDDATAHANDLE_HH
DataCollectorType & dc_
Definition: datahandle.hh:193
void inlineElementData(ObjectStreamType &stream, const EntityType &element)
Definition: datahandle.hh:952
int loadWeight(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition: datahandle.hh:623
GatherScatterLeafData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Constructor.
Definition: datahandle.hh:333
Definition: datahandle.hh:1061
void xtractEntityData(ObjectStreamType &stream, const typename Codim< codim > ::Entity &entity)
Definition: datahandle.hh:1043
void setElement(const HElementType &elem)
Definition: datahandle.hh:497
Definition: datahandle.hh:780
bool exportRanks(std::set< int > &ranks) const
Definition: datahandle.hh:713
void setElement(const HElementType &elem)
Definition: datahandle.hh:376
void recvData(ObjectStreamType &str, HGhostType &ghost)
read Data of one element from stream
Definition: datahandle.hh:268
ImplTraits::PllElementType PllElementType
Definition: datahandle.hh:187
bool importRanks(std::set< int > &ranks) const
Definition: datahandle.hh:705
GatherScatterLevelData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc, const LevelIndexSetImp &levelSet, const int level)
Constructor.
Definition: datahandle.hh:414
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition: datahandle.hh:788
CompressAndReserve< DataHandleType, hasCompressAndReserve > CompressAndReserveType
Definition: datahandle.hh:822
RealEntityType & realEntity_
Definition: datahandle.hh:190
bool repartition()
Definition: datahandle.hh:698
Gitter::AdaptRestrictProlong AdaptRestrictProlongType
Definition: alu3dinclude.hh:52
bool contains(int dim, int codim) const
Definition: datahandle.hh:217
void setElement(const HElementType &elem)
Definition: datahandle.hh:428
ImplTraits::template Codim< GridType::dimension, 0 >::InterfaceType HElementType
Definition: datahandle.hh:789
bool contains(int dim, int cd) const
Definition: datahandle.hh:861
GatherScatterLevelData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc, const LevelIndexSetImp &levelSet, const int level)
Constructor.
Definition: datahandle.hh:545
GatherScatter ::ObjectStreamType ObjectStreamType
Definition: datahandle.hh:46
size_t getSize(ObjectStreamType &str, EntityType &en)
Definition: datahandle.hh:146
bool userDefinedLoadWeights() const
Definition: datahandle.hh:692
GatherScatterLoadBalanceDataHandle(GridType &grid, DataHandleType &dh)
Constructor for DataHandle only.
Definition: datahandle.hh:853
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition: datahandle.hh:604
Definition: alu3dinclude.hh:259
bool containsItem(const HElementType &elem) const
Definition: datahandle.hh:422
int loadWeight(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition: datahandle.hh:643
the corresponding interface class is defined in bsinclude.hh
Definition: datahandle.hh:384
GridType::MPICommunicatorType Comm
Definition: datahandle.hh:176
int postRefinement(HBndSegType &ghost)
prolong data for ghost elements
Definition: datahandle.hh:1126
EntityType entity_
Definition: datahandle.hh:658
GridType::MPICommunicatorType Comm
Definition: datahandle.hh:787
bool containsItem(const HGhostType &ghost) const
Definition: datahandle.hh:356
const GridType & grid_
Definition: datahandle.hh:29
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition: datahandle.hh:178
Definition: datahandle.hh:611
GridType::template Codim< codim >::EntityImp RealEntityType
Definition: datahandle.hh:31
int preCoarsening(HBndSegType &ghost)
restrict data for ghost elements
Definition: datahandle.hh:1122
bool containsInterior(const HFaceType &face, PllElementType &pll) const
Definition: datahandle.hh:364
GridType::template Codim< 0 >::Entity EntityType
Definition: datahandle.hh:173
void recvData(ObjectStreamType &str, HElementType &elem)
read Data of one element from stream
Definition: datahandle.hh:258
AdaptRestrictProlongGlSet(GridType &grid, AdaptDataHandle &rp, GlobalIdSetImp &set)
Constructor.
Definition: datahandle.hh:1151
static void compress(DH &dataHandle)
Definition: datahandle.hh:814
bool containsItem(const HElementType &elem) const
Definition: datahandle.hh:485
Definition: datahandle.hh:28
Definition: datahandle.hh:1132
AdaptRestrictProlongImpl(GridType &grid, AdaptDataHandle &rp)
Constructor.
Definition: datahandle.hh:1084
ImplTraits::template Codim< dimension, codim >::InterfaceType HElementType
Definition: datahandle.hh:37
GridType::template Codim< 0 >::EntityImp RealEntityType
Definition: datahandle.hh:174
virtual ~AdaptRestrictProlongGlSet()
Definition: datahandle.hh:1158
virtual bool containsItem(const HElementType &elem) const
Definition: datahandle.hh:223
void inlineCodimData(ObjectStreamType &stream, const EntityType &element) const
Definition: datahandle.hh:993
the corresponding interface class is defined in bsinclude.hh
Definition: datahandle.hh:305
BaseType ::EntityType EntityType
Definition: datahandle.hh:791
bool importRank(const LoadBalanceHandleType &lb, std::set< int > &ranks) const
Definition: datahandle.hh:632
GatherScatter ::ObjectStreamType ObjectStreamType
Definition: datahandle.hh:198
bool contains(int dim, int cd) const
Definition: datahandle.hh:68
DataHandleType & dataHandle_
Definition: datahandle.hh:825
bool hasUserData() const
Definition: datahandle.hh:889
DataCollectorType::DataType DataType
Definition: datahandle.hh:48
void xtractElementData(ObjectStreamType &stream, const EntityType &element)
Definition: datahandle.hh:967
ImplTraits::template Codim< dim, 1 >::InterfaceType HFaceType
Definition: datahandle.hh:182
GridType ::Traits ::template Codim< codim >::Entity Entity
Definition: datahandle.hh:782
GridType::MPICommunicatorType Comm
Definition: datahandle.hh:33
GatherScatter ::ObjectStreamType ObjectStreamType
Definition: datahandle.hh:828
GridType ::template Codim< 0 >::Entity EntityType
Definition: datahandle.hh:607
int postRefinement(HElementType &elem)
prolong data, elem is the father
Definition: datahandle.hh:1161
void inlineHierarchy(ObjectStreamType &str, HElementType &elem)
Definition: datahandle.hh:932
ImplTraits::template Codim< dim, codim >::ImplementationType ImplElementType
Definition: datahandle.hh:179
bool containsItem(const HElementType &elem) const
Definition: datahandle.hh:551
EntityType & entity_
Definition: datahandle.hh:189
const GridType & grid_
Definition: datahandle.hh:172
void compress()
call compress on data
Definition: datahandle.hh:923
GatherScatterLoadBalanceDataHandle(GridType &grid, DataHandleType &dh, LoadBalanceHandleType &ldb)
Constructor taking load balance handle and data handle.
Definition: datahandle.hh:843
RealEntityType & realEntity_
Definition: datahandle.hh:40
bool containsItem(const RealHElementType &elem) const
Definition: datahandle.hh:491
ImplTraits::template Codim< dim, codim >::GhostImplementationType ImplGhostType
Definition: datahandle.hh:185
GridType::MPICommunicatorType Comm
Definition: datahandle.hh:602
int subEntities(const EntityType &element) const
Definition: datahandle.hh:983
bool containsGhost(const HFaceType &face, PllElementType &pll) const
Definition: datahandle.hh:583
GatherScatterLoadBalance(GridType &grid, LoadBalanceHandleType &ldb)
Constructor.
Definition: datahandle.hh:668
bool containsInterior(const HFaceType &face, PllElementType &pll) const
Definition: datahandle.hh:564
GridType::template Codim< codim >::Entity EntityType
Definition: datahandle.hh:30
LoadBalanceHandleType & ldbHandle()
Definition: datahandle.hh:748
const LoadBalanceHandleType & ldbHandle() const
Definition: datahandle.hh:754
ImplTraits::template Codim< dim, codim >::GhostInterfaceType HGhostType
Definition: datahandle.hh:184
the corresponding interface class is defined in bsinclude.hh
Definition: datahandle.hh:24
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition: datahandle.hh:35
void inlineEntityData(ObjectStreamType &stream, const typename Codim< codim > ::Entity &entity) const
Definition: datahandle.hh:1031
#define alugrid_assert(EX)
Definition: alugrid_assert.hh:20
void xtractCodimData(ObjectStreamType &stream, const EntityType &element)
Definition: datahandle.hh:1012
const bool variableSize_
Definition: datahandle.hh:195
int loadWeight(HElementType &elem)
Definition: datahandle.hh:732
GridType ::Traits ::template Codim< codim >::EntityPointer EntityPointer
Definition: datahandle.hh:784
static void reserveMemory(DH &dataHandle, const size_t newElements)
Definition: datahandle.hh:800
int destination(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition: datahandle.hh:618
bool containsItem(const HGhostType &ghost) const
Definition: datahandle.hh:557
GatherScatterLoadBalance(GridType &grid)
Constructor.
Definition: datahandle.hh:676
void setElement(const RealHElementType &elem)
Definition: datahandle.hh:505
ImplTraits::template Codim< dimension, codim >::ImplementationType ImplElementType
Definition: datahandle.hh:36
bool containsGhost(const HFaceType &face, PllElementType &pll) const
Definition: datahandle.hh:370
Definition: datahandle.hh:768
static const bool transmitSize
Definition: datahandle.hh:820
bool hasUserData() const
Definition: datahandle.hh:683
const bool variableSize_
Definition: datahandle.hh:44
int postRefinement(HElementType &father)
prolong data for elements
Definition: datahandle.hh:1108
virtual ~AdaptRestrictProlongImpl()
Definition: datahandle.hh:1092
Definition: alu3dinclude.hh:49
void sendData(ObjectStreamType &str, HElementType &elem)
write Data of one element to stream
Definition: datahandle.hh:119
the corresponding interface class is defined in bsinclude.hh
Definition: datahandle.hh:438
GatherScatterBaseImpl(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Constructor.
Definition: datahandle.hh:210
bool containsItem(const HElementType &elem) const
Definition: datahandle.hh:350
Definition: datahandle.hh:796
static const bool hasCompressAndReserve
Definition: datahandle.hh:818
GridType ::template Codim< 0 >::EntityImp EntityImpType
Definition: datahandle.hh:608
void xtractHierarchy(ObjectStreamType &str, HElementType &elem)
Definition: datahandle.hh:942
static void reserveMemory(DH &dataHandle, const size_t newElements)
Definition: datahandle.hh:813
bool userDefinedPartitioning() const
Definition: datahandle.hh:686
static DataHandleImpl & asImp(DH &dh)
Definition: datahandle.hh:798
void sendData(ObjectStreamType &str, const HGhostType &ghost)
write Data of one ghost element to stream
Definition: datahandle.hh:244
GatherScatterNoData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Leaf Constructor.
Definition: datahandle.hh:478
Dune::CommDataHandleIF< DataHandleImpl, Data > DataHandleType
Definition: datahandle.hh:793
bool maxLevelConsistency() const
Definition: datahandle.hh:835
int destination(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition: datahandle.hh:637
void writeSize(ObjectStreamType &str, EntityType &en)
Definition: datahandle.hh:293
GatherScatterNoData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc, const LevelIndexSetImp &levelSet, const int level)
Level Constructor.
Definition: datahandle.hh:470
GatherScatterBaseImpl(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Constructor.
Definition: datahandle.hh:57
GridType ::Traits ::HierarchicIterator HierarchicIterator
Definition: datahandle.hh:777
Definition: datahandle.hh:599
void setData(ObjectStreamType &str, HElementType &elem)
Definition: datahandle.hh:102
void sendData(ObjectStreamType &str, const HElementType &elem)
write Data of one element to stream
Definition: datahandle.hh:232
static void compress(DH &dataHandle)
Definition: datahandle.hh:804
DataCollectorType & dc_
Definition: datahandle.hh:42
static const int dimension
Definition: datahandle.hh:776
ImplTraits::template Codim< dim, codim >::InterfaceType HElementType
Definition: datahandle.hh:180
virtual bool containsItem(const HElementType &elem) const =0
int destination(HElementType &elem)
Definition: datahandle.hh:723
void recvData(ObjectStreamType &str, HElementType &elem)
read Data of one element from stream
Definition: datahandle.hh:136
EntityType & entity_
Definition: datahandle.hh:39
LoadBalanceHandleType * ldbHandle_
Definition: datahandle.hh:661
ImplTraits::template Codim< GridType::dimension, 0 >::InterfaceType HElementType
Definition: datahandle.hh:605
size_t getSize(ObjectStreamType &str, EntityType &en)
Definition: datahandle.hh:280
virtual void setElement(const HElementType &elem)=0
bool importRank(const LoadBalanceHandleType &lb, std::set< int > &ranks) const
Definition: datahandle.hh:613
int preCoarsening(HElementType &father)
restrict data for elements
Definition: datahandle.hh:1097
void inlineData(ObjectStreamType &str, HElementType &elem, const int estimatedElements)
Definition: datahandle.hh:893
EntityType & setEntity(HElementType &elem)
Definition: datahandle.hh:742
GridType & grid_
Definition: datahandle.hh:656
void xtractData(ObjectStreamType &str, HElementType &elem)
Definition: datahandle.hh:906