walberla::blockforest::MetisAssignmentFunctor Class Reference

Detailed Description

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::InfoCollectionic_
 
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...
 

Member Typedef Documentation

◆ PhantomBlockWeight

Convenience typedef to be used as PhantomBlock weight in conjunction with this weight assignment functor.

◆ PhantomBlockWeightPackUnpackFunctor

Convenience typedef for pack and unpack functions to be used in conjunction with PhantomBlockWeight.

Constructor & Destructor Documentation

◆ MetisAssignmentFunctor()

walberla::blockforest::MetisAssignmentFunctor::MetisAssignmentFunctor ( shared_ptr< blockforest::InfoCollection > &  ic,
const real_t  baseWeight = real_t(10.0) 
)
inline

Member Function Documentation

◆ getBaseWeight()

double walberla::blockforest::MetisAssignmentFunctor::getBaseWeight ( ) const
inline

◆ operator()()

void walberla::blockforest::MetisAssignmentFunctor::operator() ( std::vector< std::pair< const PhantomBlock *, walberla::any > > &  blockData,
const PhantomBlockForest forest 
)
inline

◆ setBaseWeight()

void walberla::blockforest::MetisAssignmentFunctor::setBaseWeight ( const double  weight)
inline

Member Data Documentation

◆ baseWeight_

double walberla::blockforest::MetisAssignmentFunctor::baseWeight_ = 10.0
private

Base weight due to allocated data structures. A weight of zero for blocks is dangerous as empty blocks might accumulate on one process!

◆ ic_

shared_ptr< blockforest::InfoCollection > walberla::blockforest::MetisAssignmentFunctor::ic_
private

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