template<typename PhantomData_T>
class walberla::blockforest::DynamicCurveBalance< PhantomData_T >
This class implements Hilber and Morton space filling curves for load balancing.
All algorithms are implemented to work levelwise. Load balancing with levels ignored is possible by specifying levelwise = false in the constructor.
|
void | allGatherWeighted (std::vector< std::pair< const PhantomBlock *, uint_t > > &targetProcess, std::set< uint_t > &processesToRecvFrom, const PhantomBlockForest &phantomForest) const |
|
void | allGatherNoWeight (std::vector< std::pair< const PhantomBlock *, uint_t > > &targetProcess, std::set< uint_t > &processesToRecvFrom, const PhantomBlockForest &phantomForest) const |
|
void | masterWeighted (std::vector< std::pair< const PhantomBlock *, uint_t > > &targetProcess, std::set< uint_t > &processesToRecvFrom, const PhantomBlockForest &phantomForest) const |
|
void | masterNoWeight (std::vector< std::pair< const PhantomBlock *, uint_t > > &targetProcess, std::set< uint_t > &processesToRecvFrom, const PhantomBlockForest &phantomForest) const |
|
void | hilbertOrderWeighted (const std::vector< std::vector< std::pair< BlockID, weight_t > > > &allBlocks, std::vector< std::vector< std::pair< pid_t, idx_t > > > &blocksPerLevel, const PhantomBlockForest &phantomForest) const |
|
void | hilbertOrderNoWeight (const std::vector< std::vector< BlockID > > &allBlocks, std::vector< std::vector< std::pair< pid_t, idx_t > > > &blocksPerLevel, const PhantomBlockForest &phantomForest) const |
|
void | addBlockToForest (std::vector< shared_ptr< Node > > &forest, const std::pair< pid_t, idx_t > &index, BlockID &id, const uint_t level) const |
|
void | mortonOrderWeighted (const std::vector< std::vector< std::pair< BlockID, weight_t > > > &allBlocks, std::vector< std::vector< std::pair< pid_t, idx_t > > > &blocksPerLevel, const PhantomBlockForest &phantomForest) const |
|
void | mortonOrderNoWeight (const std::vector< std::vector< BlockID > > &allBlocks, std::vector< std::vector< std::pair< pid_t, idx_t > > > &blocksPerLevel, const PhantomBlockForest &phantomForest) const |
|
void | balanceWeighted (const std::vector< std::vector< std::pair< BlockID, weight_t > > > &allBlocks, const std::vector< std::vector< std::pair< pid_t, idx_t > > > &blocksPerLevel, std::vector< std::vector< pid_t > > &targets, std::vector< std::set< pid_t > > &sender) const |
|
void | balanceNoWeight (const std::vector< std::vector< BlockID > > &allBlocks, const std::vector< std::vector< std::pair< pid_t, idx_t > > > &blocksPerLevel, std::vector< std::vector< pid_t > > &targets, std::vector< std::set< pid_t > > &sender) const |
|
void | masterEnd (std::vector< std::vector< pid_t > > &targets, std::vector< std::set< pid_t > > &sender, std::vector< std::pair< const PhantomBlock *, uint_t > > &targetProcess, std::set< uint_t > &processesToRecvFrom) const |
|
void | finalAssignment (const uint_t index, const std::vector< std::vector< pid_t > > &targets, const std::vector< std::set< pid_t > > &sender, std::vector< std::pair< const PhantomBlock *, uint_t > > &targetProcess, std::set< uint_t > &processesToRecvFrom) const |
|
bool | weightedBlocks () const |
|
template<typename T > |
pid_t | pid_c (const T &value) const |
|
template<typename T > |
idx_t | idx_c (const T &value) const |
|