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;
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;
219 return dc_.contains(dim,codim);
225 return elem.isLeafEntity();
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;
334 RealEntityType & realEntity , DataCollectorType & dc)
335 : BaseType(grid,en,realEntity,dc)
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_;
415 RealEntityType & realEntity , DataCollectorType & dc,
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;
471 RealEntityType & realEntity , DataCollectorType & dc,
472 const LevelIndexSetImp & levelSet,
const int level)
473 : BaseType(grid,en,realEntity,dc)
479 RealEntityType & realEntity , DataCollectorType & dc)
480 : BaseType(grid,en,realEntity,dc)
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;
537 typedef typename ImplTraits::PllElementType PllElementType;
539 typedef typename GridType::LevelIndexSetImp LevelIndexSetImp;
541 const LevelIndexSetImp & levelSet_;
546 RealEntityType & realEntity , DataCollectorType & dc,
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;
569 typedef Gitter::helement_STI HElementType;
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)
846 : BaseType( grid, 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 );
916 CompressAndReserveType :: reserveMemory(
dataHandle_, 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;
1152 AdaptDataHandle &rp,
1153 GlobalIdSetImp & set )
1154 : BaseType( grid, rp ),
1163 set_.postRefinement( elem );
1164 return BaseType :: postRefinement(elem );
#define alugrid_assert(EX)
Definition alugrid_assert.hh:20
Definition alu3dinclude.hh:50
Gitter::AdaptRestrictProlong AdaptRestrictProlongType
Definition alu3dinclude.hh:52
Definition alu3dinclude.hh:259
the corresponding interface class is defined in bsinclude.hh
Definition datahandle.hh:26
virtual void setElement(const HElementType &elem)=0
DataCollectorType::DataType DataType
Definition datahandle.hh:48
GridType::MPICommunicatorType Comm
Definition datahandle.hh:33
const bool variableSize_
Definition datahandle.hh:44
GridType::template Codim< codim >::Entity EntityType
Definition datahandle.hh:30
bool contains(int dim, int cd) const
Definition datahandle.hh:68
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition datahandle.hh:35
EntityType & entity_
Definition datahandle.hh:39
RealEntityType & realEntity_
Definition datahandle.hh:40
void recvData(ObjectStreamType &str, HElementType &elem)
read Data of one element from stream
Definition datahandle.hh:136
void setData(ObjectStreamType &str, HElementType &elem)
Definition datahandle.hh:102
DataCollectorType & dc_
Definition datahandle.hh:42
GatherScatterBaseImpl(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Constructor.
Definition datahandle.hh:57
GridType::template Codim< codim >::EntityImp RealEntityType
Definition datahandle.hh:31
const GridType & grid_
Definition datahandle.hh:29
size_t getSize(ObjectStreamType &str, EntityType &en)
Definition datahandle.hh:146
@ dimension
Definition datahandle.hh:28
void sendData(ObjectStreamType &str, HElementType &elem)
write Data of one element to stream
Definition datahandle.hh:119
ImplTraits::template Codim< dimension, codim >::ImplementationType ImplElementType
Definition datahandle.hh:36
virtual bool containsItem(const HElementType &elem) const =0
ImplTraits::template Codim< dimension, codim >::InterfaceType HElementType
Definition datahandle.hh:37
GatherScatter::ObjectStreamType ObjectStreamType
Definition datahandle.hh:46
ImplTraits::template Codim< dim, codim >::GhostImplementationType ImplGhostType
Definition datahandle.hh:185
RealEntityType & realEntity_
Definition datahandle.hh:190
GatherScatterBaseImpl(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Constructor.
Definition datahandle.hh:210
size_t getSize(ObjectStreamType &str, EntityType &en)
Definition datahandle.hh:280
const bool variableSize_
Definition datahandle.hh:195
void sendData(ObjectStreamType &str, const HGhostType &ghost)
write Data of one ghost element to stream
Definition datahandle.hh:244
ImplTraits::template Codim< dim, codim >::InterfaceType HElementType
Definition datahandle.hh:180
const GridType & grid_
Definition datahandle.hh:172
GridType::template Codim< 0 >::Entity EntityType
Definition datahandle.hh:173
void recvData(ObjectStreamType &str, HGhostType &ghost)
read Data of one element from stream
Definition datahandle.hh:268
ImplTraits::template Codim< dim, codim >::ImplementationType ImplElementType
Definition datahandle.hh:179
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition datahandle.hh:178
virtual bool containsItem(const HElementType &elem) const
Definition datahandle.hh:223
EntityType & entity_
Definition datahandle.hh:189
GridType::template Codim< 0 >::EntityImp RealEntityType
Definition datahandle.hh:174
ImplTraits::PllElementType PllElementType
Definition datahandle.hh:187
GridType::MPICommunicatorType Comm
Definition datahandle.hh:176
GatherScatter::ObjectStreamType ObjectStreamType
Definition datahandle.hh:198
virtual bool containsItem(const HGhostType &ghost) const =0
ImplTraits::template Codim< dim, codim >::GhostInterfaceType HGhostType
Definition datahandle.hh:184
ImplTraits::template Codim< dim, 1 >::InterfaceType HFaceType
Definition datahandle.hh:182
void sendData(ObjectStreamType &str, const HElementType &elem)
write Data of one element to stream
Definition datahandle.hh:232
void writeSize(ObjectStreamType &str, EntityType &en)
Definition datahandle.hh:293
DataCollectorType & dc_
Definition datahandle.hh:193
void recvData(ObjectStreamType &str, HElementType &elem)
read Data of one element from stream
Definition datahandle.hh:258
bool contains(int dim, int codim) const
Definition datahandle.hh:217
the corresponding interface class is defined in bsinclude.hh
Definition datahandle.hh:307
GatherScatterLeafData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Constructor.
Definition datahandle.hh:333
bool containsItem(const HGhostType &ghost) const
Definition datahandle.hh:356
bool containsInterior(const HFaceType &face, PllElementType &pll) const
Definition datahandle.hh:364
bool containsGhost(const HFaceType &face, PllElementType &pll) const
Definition datahandle.hh:370
void setElement(const HElementType &elem)
Definition datahandle.hh:376
bool containsItem(const HElementType &elem) const
Definition datahandle.hh:350
the corresponding interface class is defined in bsinclude.hh
Definition datahandle.hh:386
bool containsItem(const HElementType &elem) const
Definition datahandle.hh:422
GatherScatterLevelData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc, const LevelIndexSetImp &levelSet, const int level)
Constructor.
Definition datahandle.hh:414
void setElement(const HElementType &elem)
Definition datahandle.hh:428
the corresponding interface class is defined in bsinclude.hh
Definition datahandle.hh:440
void setElement(const HElementType &elem)
Definition datahandle.hh:497
bool containsItem(const HElementType &elem) const
Definition datahandle.hh:485
GatherScatterNoData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc)
Leaf Constructor.
Definition datahandle.hh:478
GatherScatterNoData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc, const LevelIndexSetImp &levelSet, const int level)
Level Constructor.
Definition datahandle.hh:470
void setElement(const RealHElementType &elem)
Definition datahandle.hh:505
bool containsItem(const RealHElementType &elem) const
Definition datahandle.hh:491
GatherScatterLevelData(const GridType &grid, EntityType &en, RealEntityType &realEntity, DataCollectorType &dc, const LevelIndexSetImp &levelSet, const int level)
Constructor.
Definition datahandle.hh:545
bool containsGhost(const HFaceType &face, PllElementType &pll) const
Definition datahandle.hh:583
bool containsInterior(const HFaceType &face, PllElementType &pll) const
Definition datahandle.hh:564
bool containsItem(const HGhostType &ghost) const
Definition datahandle.hh:557
bool containsItem(const HElementType &elem) const
Definition datahandle.hh:551
Definition datahandle.hh:600
GridType::template Codim< 0 >::Entity EntityType
Definition datahandle.hh:607
ImplTraits::template Codim< GridType::dimension, 0 >::InterfaceType HElementType
Definition datahandle.hh:605
EntityType entity_
Definition datahandle.hh:658
EntityType & setEntity(HElementType &elem)
Definition datahandle.hh:742
GridType::template Codim< 0 >::EntityImp EntityImpType
Definition datahandle.hh:608
LoadBalanceHandleType & ldbHandle()
Definition datahandle.hh:748
const LoadBalanceHandleType & ldbHandle() const
Definition datahandle.hh:754
bool userDefinedLoadWeights() const
Definition datahandle.hh:692
LoadBalanceHandleType * ldbHandle_
Definition datahandle.hh:661
bool userDefinedPartitioning() const
Definition datahandle.hh:686
GridType & grid_
Definition datahandle.hh:656
GatherScatterLoadBalance(GridType &grid)
Constructor.
Definition datahandle.hh:676
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition datahandle.hh:604
int loadWeight(HElementType &elem)
Definition datahandle.hh:732
GridType::MPICommunicatorType Comm
Definition datahandle.hh:602
int destination(HElementType &elem)
Definition datahandle.hh:723
bool exportRanks(std::set< int > &ranks) const
Definition datahandle.hh:713
bool importRanks(std::set< int > &ranks) const
Definition datahandle.hh:705
bool hasUserData() const
Definition datahandle.hh:683
bool repartition()
Definition datahandle.hh:698
GatherScatterLoadBalance(GridType &grid, LoadBalanceHandleType &ldb)
Constructor.
Definition datahandle.hh:668
Definition datahandle.hh:612
bool importRank(const LoadBalanceHandleType &lb, std::set< int > &ranks) const
Definition datahandle.hh:613
int loadWeight(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition datahandle.hh:623
int destination(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition datahandle.hh:618
int loadWeight(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition datahandle.hh:643
int destination(const LoadBalanceHandleType &lb, const EntityType &entity) const
Definition datahandle.hh:637
bool importRank(const LoadBalanceHandleType &lb, std::set< int > &ranks) const
Definition datahandle.hh:632
Definition datahandle.hh:770
void inlineElementData(ObjectStreamType &stream, const EntityType &element)
Definition datahandle.hh:952
GatherScatterLoadBalanceDataHandle(GridType &grid, DataHandleType &dh, LoadBalanceHandleType &ldb)
Constructor taking load balance handle and data handle.
Definition datahandle.hh:843
GatherScatterLoadBalanceDataHandle(GridType &grid, DataHandleType &dh)
Constructor for DataHandle only.
Definition datahandle.hh:853
void inlineHierarchy(ObjectStreamType &str, HElementType &elem)
Definition datahandle.hh:932
void xtractCodimData(ObjectStreamType &stream, const EntityType &element)
Definition datahandle.hh:1012
DataHandleType & dataHandle_
Definition datahandle.hh:825
bool contains(int dim, int cd) const
Definition datahandle.hh:861
int subEntities(const EntityType &element) const
Definition datahandle.hh:983
ImplTraits::template Codim< GridType::dimension, 0 >::InterfaceType HElementType
Definition datahandle.hh:789
Dune::CommDataHandleIF< DataHandleImpl, Data > DataHandleType
Definition datahandle.hh:793
GatherScatter::ObjectStreamType ObjectStreamType
Definition datahandle.hh:828
static const int dimension
Definition datahandle.hh:776
void inlineCodimData(ObjectStreamType &stream, const EntityType &element) const
Definition datahandle.hh:993
BaseType::EntityType EntityType
Definition datahandle.hh:791
bool hasUserData() const
Definition datahandle.hh:889
void compress()
call compress on data
Definition datahandle.hh:923
void inlineEntityData(ObjectStreamType &stream, const typename Codim< codim > ::Entity &entity) const
Definition datahandle.hh:1031
CompressAndReserve< DataHandleType, hasCompressAndReserve > CompressAndReserveType
Definition datahandle.hh:822
Dune::ALU3dImplTraits< GridType::elementType, Comm > ImplTraits
Definition datahandle.hh:788
void xtractHierarchy(ObjectStreamType &str, HElementType &elem)
Definition datahandle.hh:942
bool maxLevelConsistency() const
Definition datahandle.hh:835
void xtractElementData(ObjectStreamType &stream, const EntityType &element)
Definition datahandle.hh:967
void xtractData(ObjectStreamType &str, HElementType &elem)
Definition datahandle.hh:906
GridType::MPICommunicatorType Comm
Definition datahandle.hh:787
void xtractEntityData(ObjectStreamType &stream, const typename Codim< codim > ::Entity &entity)
Definition datahandle.hh:1043
static const bool transmitSize
Definition datahandle.hh:820
static const bool hasCompressAndReserve
Definition datahandle.hh:818
GridType::Traits::HierarchicIterator HierarchicIterator
Definition datahandle.hh:777
void inlineData(ObjectStreamType &str, HElementType &elem, const int estimatedElements)
Definition datahandle.hh:893
Definition datahandle.hh:781
GridType::Traits::template Codim< codim >::Entity Entity
Definition datahandle.hh:782
GridType::Traits::template Codim< codim >::EntityPointer EntityPointer
Definition datahandle.hh:784
Definition datahandle.hh:797
static void reserveMemory(DH &dataHandle, const size_t newElements)
Definition datahandle.hh:800
static DataHandleImpl & asImp(DH &dh)
Definition datahandle.hh:798
static void compress(DH &dataHandle)
Definition datahandle.hh:804
static void reserveMemory(DH &dataHandle, const size_t newElements)
Definition datahandle.hh:813
static void compress(DH &dataHandle)
Definition datahandle.hh:814
Definition datahandle.hh:1063
AdaptRestrictProlongImpl(GridType &grid, AdaptDataHandle &rp)
Constructor.
Definition datahandle.hh:1084
int preCoarsening(HBndSegType &ghost)
restrict data for ghost elements
Definition datahandle.hh:1122
int postRefinement(HElementType &father)
prolong data for elements
Definition datahandle.hh:1108
int preCoarsening(HElementType &father)
restrict data for elements
Definition datahandle.hh:1097
virtual ~AdaptRestrictProlongImpl()
Definition datahandle.hh:1092
int postRefinement(HBndSegType &ghost)
prolong data for ghost elements
Definition datahandle.hh:1126
Definition datahandle.hh:1134
AdaptRestrictProlongGlSet(GridType &grid, AdaptDataHandle &rp, GlobalIdSetImp &set)
Constructor.
Definition datahandle.hh:1151
virtual ~AdaptRestrictProlongGlSet()
Definition datahandle.hh:1158
int postRefinement(HElementType &elem)
prolong data, elem is the father
Definition datahandle.hh:1161