Assignment functor for ParMetis based load balancing.
Uses BlockInfo::computationalWeight as vertex weight. Uses the overlap between neighboring domains as edge weight.
#include <MetisAssignmentFunctor.h>
Public Types | |
using | PhantomBlockWeight = blockforest::DynamicParMetisBlockInfo |
Convenience typedef to be used as PhantomBlock weight in conjunction with this weight assignment functor. More... | |
using | PhantomBlockWeightPackUnpackFunctor = blockforest::DynamicParMetisBlockInfoPackUnpack |
Convenience typedef for pack and unpack functions to be used in conjunction with PhantomBlockWeight. More... | |
Public Member Functions | |
MetisAssignmentFunctor (shared_ptr< blockforest::InfoCollection > &ic, const real_t baseWeight=real_t(10.0)) | |
void | operator() (std::vector< std::pair< const PhantomBlock *, walberla::any > > &blockData, const PhantomBlockForest &forest) |
void | setBaseWeight (const double weight) |
double | getBaseWeight () const |
Private Attributes | |
shared_ptr< blockforest::InfoCollection > | ic_ |
double | baseWeight_ = 10.0 |
Base weight due to allocated data structures. A weight of zero for blocks is dangerous as empty blocks might accumulate on one process! More... | |
using walberla::blockforest::MetisAssignmentFunctor::PhantomBlockWeight = blockforest::DynamicParMetisBlockInfo |
Convenience typedef to be used as PhantomBlock weight in conjunction with this weight assignment functor.
using walberla::blockforest::MetisAssignmentFunctor::PhantomBlockWeightPackUnpackFunctor = blockforest::DynamicParMetisBlockInfoPackUnpack |
Convenience typedef for pack and unpack functions to be used in conjunction with PhantomBlockWeight.
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
Base weight due to allocated data structures. A weight of zero for blocks is dangerous as empty blocks might accumulate on one process!
|
private |