dune-alugrid  2.6-git
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal > Class Template Reference

#include <dune/alugrid/3d/datahandle.hh>

Inheritance diagram for ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >:
Inheritance graph

Classes

struct  Codim
 
struct  CompressAndReserve
 
struct  CompressAndReserve< DH, false >
 

Public Member Functions

 GatherScatterLoadBalanceDataHandle (GridType &grid, DataHandleType &dh, LoadBalanceHandleType &ldb)
 Constructor taking load balance handle and data handle. More...
 
 GatherScatterLoadBalanceDataHandle (GridType &grid, DataHandleType &dh)
 Constructor for DataHandle only. More...
 
bool contains (int dim, int cd) const
 
bool hasUserData () const
 
void inlineData (ObjectStreamType &str, HElementType &elem, const int estimatedElements)
 
void xtractData (ObjectStreamType &str, HElementType &elem)
 
void compress ()
 call compress on data More...
 
bool userDefinedPartitioning () const
 
bool userDefinedLoadWeights () const
 
bool repartition ()
 
bool importRanks (std::set< int > &ranks) const
 
bool exportRanks (std::set< int > &ranks) const
 
int destination (HElementType &elem)
 
int loadWeight (HElementType &elem)
 

Protected Types

typedef GridType ::Traits ::HierarchicIterator HierarchicIterator
 
typedef GridType::MPICommunicatorType Comm
 
typedef Dune::ALU3dImplTraits< GridType::elementType, CommImplTraits
 
typedef ImplTraits::template Codim< GridType::dimension, 0 >::InterfaceType HElementType
 
typedef BaseType ::EntityType EntityType
 
typedef Dune::CommDataHandleIF< DataHandleImpl, Data > DataHandleType
 
typedef CompressAndReserve< DataHandleType, hasCompressAndReserveCompressAndReserveType
 
typedef GatherScatter ::ObjectStreamType ObjectStreamType
 
typedef GridType ::template Codim< 0 >::EntityImp EntityImpType
 

Protected Member Functions

bool maxLevelConsistency () const
 
void inlineHierarchy (ObjectStreamType &str, HElementType &elem)
 
void xtractHierarchy (ObjectStreamType &str, HElementType &elem)
 
void inlineElementData (ObjectStreamType &stream, const EntityType &element)
 
void xtractElementData (ObjectStreamType &stream, const EntityType &element)
 
template<int codim>
int subEntities (const EntityType &element) const
 
template<int codim>
void inlineCodimData (ObjectStreamType &stream, const EntityType &element) const
 
template<int codim>
void xtractCodimData (ObjectStreamType &stream, const EntityType &element)
 
template<int codim>
void inlineEntityData (ObjectStreamType &stream, const typename Codim< codim > ::Entity &entity) const
 
template<int codim>
void xtractEntityData (ObjectStreamType &stream, const typename Codim< codim > ::Entity &entity)
 
EntityTypesetEntity (HElementType &elem)
 
LoadBalanceHandleType & ldbHandle ()
 
const LoadBalanceHandleType & ldbHandle () const
 

Protected Attributes

DataHandleTypedataHandle_
 
GridType & grid_
 
EntityType entity_
 
LoadBalanceHandleType * ldbHandle_
 

Static Protected Attributes

static const int dimension = GridType :: dimension
 
static const bool hasCompressAndReserve = std::is_base_of< LoadBalanceHandleWithReserveAndCompress, DataHandleImpl >::value
 
static const bool transmitSize = ! hasCompressAndReserve
 

Member Typedef Documentation

◆ Comm

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef GridType::MPICommunicatorType ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::Comm
protected

◆ CompressAndReserveType

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef CompressAndReserve< DataHandleType, hasCompressAndReserve > ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::CompressAndReserveType
protected

◆ DataHandleType

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef Dune::CommDataHandleIF< DataHandleImpl, Data > ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::DataHandleType
protected

◆ EntityImpType

template<class GridType , class LoadBalanceHandleType , bool useExternal>
typedef GridType :: template Codim< 0 >:: EntityImp ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::EntityImpType
protectedinherited

◆ EntityType

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef BaseType :: EntityType ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::EntityType
protected

◆ HElementType

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef ImplTraits::template Codim< GridType::dimension, 0 >::InterfaceType ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::HElementType
protected

◆ HierarchicIterator

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef GridType :: Traits :: HierarchicIterator ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::HierarchicIterator
protected

◆ ImplTraits

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef Dune::ALU3dImplTraits< GridType::elementType, Comm > ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::ImplTraits
protected

◆ ObjectStreamType

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
typedef GatherScatter :: ObjectStreamType ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::ObjectStreamType
protected

Constructor & Destructor Documentation

◆ GatherScatterLoadBalanceDataHandle() [1/2]

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::GatherScatterLoadBalanceDataHandle ( GridType &  grid,
DataHandleType dh,
LoadBalanceHandleType &  ldb 
)
inline

Constructor taking load balance handle and data handle.

◆ GatherScatterLoadBalanceDataHandle() [2/2]

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::GatherScatterLoadBalanceDataHandle ( GridType &  grid,
DataHandleType dh 
)
inline

Constructor for DataHandle only.

Member Function Documentation

◆ compress()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::compress ( )
inline

call compress on data

◆ contains()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
bool ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::contains ( int  dim,
int  cd 
) const
inline

◆ destination()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
int ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::destination ( HElementType elem)
inlineinherited

◆ exportRanks()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
bool ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::exportRanks ( std::set< int > &  ranks) const
inlineinherited

◆ hasUserData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
bool ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::hasUserData ( ) const
inline

◆ importRanks()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
bool ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::importRanks ( std::set< int > &  ranks) const
inlineinherited

◆ inlineCodimData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
template<int codim>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::inlineCodimData ( ObjectStreamType stream,
const EntityType element 
) const
inlineprotected

◆ inlineData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::inlineData ( ObjectStreamType str,
HElementType elem,
const int  estimatedElements 
)
inline

this method is called from the dunePackAll method of the corresponding here the data is written to the ObjectStream

◆ inlineElementData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::inlineElementData ( ObjectStreamType stream,
const EntityType element 
)
inlineprotected

◆ inlineEntityData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
template<int codim>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::inlineEntityData ( ObjectStreamType stream,
const typename Codim< codim > ::Entity &  entity 
) const
inlineprotected

◆ inlineHierarchy()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::inlineHierarchy ( ObjectStreamType str,
HElementType elem 
)
inlineprotected

◆ ldbHandle() [1/2]

template<class GridType , class LoadBalanceHandleType , bool useExternal>
LoadBalanceHandleType& ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::ldbHandle ( )
inlineprotectedinherited

◆ ldbHandle() [2/2]

template<class GridType , class LoadBalanceHandleType , bool useExternal>
const LoadBalanceHandleType& ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::ldbHandle ( ) const
inlineprotectedinherited

◆ loadWeight()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
int ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::loadWeight ( HElementType elem)
inlineinherited

◆ maxLevelConsistency()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
bool ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::maxLevelConsistency ( ) const
inlineprotected

◆ repartition()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
bool ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::repartition ( )
inlineinherited

◆ setEntity()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
EntityType& ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::setEntity ( HElementType elem)
inlineprotectedinherited

◆ subEntities()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
template<int codim>
int ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::subEntities ( const EntityType element) const
inlineprotected

◆ userDefinedLoadWeights()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
bool ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::userDefinedLoadWeights ( ) const
inlineinherited

◆ userDefinedPartitioning()

template<class GridType , class LoadBalanceHandleType , bool useExternal>
bool ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::userDefinedPartitioning ( ) const
inlineinherited

◆ xtractCodimData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
template<int codim>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::xtractCodimData ( ObjectStreamType stream,
const EntityType element 
)
inlineprotected

◆ xtractData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::xtractData ( ObjectStreamType str,
HElementType elem 
)
inline

this method is called from the duneUnpackSelf method of the corresponding here the data is read from the ObjectStream

◆ xtractElementData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::xtractElementData ( ObjectStreamType stream,
const EntityType element 
)
inlineprotected

◆ xtractEntityData()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
template<int codim>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::xtractEntityData ( ObjectStreamType stream,
const typename Codim< codim > ::Entity &  entity 
)
inlineprotected

◆ xtractHierarchy()

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
void ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::xtractHierarchy ( ObjectStreamType str,
HElementType elem 
)
inlineprotected

Member Data Documentation

◆ dataHandle_

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
DataHandleType& ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::dataHandle_
protected

◆ dimension

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
const int ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::dimension = GridType :: dimension
staticprotected

◆ entity_

template<class GridType , class LoadBalanceHandleType , bool useExternal>
EntityType ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::entity_
protectedinherited

◆ grid_

template<class GridType , class LoadBalanceHandleType , bool useExternal>
GridType& ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::grid_
protectedinherited

◆ hasCompressAndReserve

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
const bool ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::hasCompressAndReserve = std::is_base_of< LoadBalanceHandleWithReserveAndCompress, DataHandleImpl >::value
staticprotected

◆ ldbHandle_

template<class GridType , class LoadBalanceHandleType , bool useExternal>
LoadBalanceHandleType* ALUGrid::GatherScatterLoadBalance< GridType, LoadBalanceHandleType, useExternal >::ldbHandle_
protectedinherited

◆ transmitSize

template<class GridType , class LoadBalanceHandleType , class DataHandleImpl , class Data , bool useExternal>
const bool ALUGrid::GatherScatterLoadBalanceDataHandle< GridType, LoadBalanceHandleType, DataHandleImpl, Data, useExternal >::transmitSize = ! hasCompressAndReserve
staticprotected

The documentation for this class was generated from the following file: