waLBerla 7.3
Loading...
Searching...
No Matches
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.
using PhantomBlockWeightPackUnpackFunctor = blockforest::DynamicParMetisBlockInfoPackUnpack
 Convenience typedef for pack and unpack functions to be used in conjunction with PhantomBlockWeight.

Public Member Functions

 MetisAssignmentFunctor (shared_ptr< blockforest::InfoCollection > &ic, const real_t baseWeight=10.0_r)
void operator() (std::vector< std::pair< const PhantomBlock *, std::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!

Member Typedef Documentation

◆ PhantomBlockWeight

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

◆ PhantomBlockWeightPackUnpackFunctor

Constructor & Destructor Documentation

◆ MetisAssignmentFunctor()

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

Member Function Documentation

◆ getBaseWeight()

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

◆ operator()()

void walberla::blockforest::MetisAssignmentFunctor::operator() ( std::vector< std::pair< const PhantomBlock *, std::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:
  • /builds/administration/walberla-website/walberla/src/blockforest/loadbalancing/weight_assignment/MetisAssignmentFunctor.h