OOFEM 3.0
Loading...
Searching...
No Matches
oofem::ParmetisLoadBalancer Class Reference

#include <parmetisloadbalancer.h>

Inheritance diagram for oofem::ParmetisLoadBalancer:
Collaboration diagram for oofem::ParmetisLoadBalancer:

Public Member Functions

 ParmetisLoadBalancer (Domain *d)
virtual ~ParmetisLoadBalancer ()
void calculateLoadTransfer () override
DofManMode giveDofManState (int idofman) override
 Returns the label of dofmanager after load balancing.
IntArraygiveDofManPartitions (int idofman) override
 Returns the partition list of given dofmanager after load balancing.
int giveElementPartition (int ielem) override
 Returns the new partition number assigned to local element after LB.
Public Member Functions inherited from oofem::LoadBalancer
 LoadBalancer (Domain *d)
virtual ~LoadBalancer ()
void migrateLoad (Domain *d)
virtual void printStatistics () const
 Print receiver statistics.
virtual void initializeFrom (InputRecord &ir)
 Initializes receiver according to object description stored in input record.
DomaingiveDomain ()
 Returns reference to its domain.
virtual void setDomain (Domain *d)
 sets associated Domain

Protected Member Functions

void handleMasterSlaveDofManLinks ()
void initGlobalParmetisElementNumbering ()
int giveLocalElementNumber (int globnum)
int giveGlobalElementNumber (int locnum)
void labelDofManagers ()
int determineDofManState (int idofman, int myrank, int npart, IntArray *dofManPartitions)
int packSharedDmanPartitions (ProcessCommunicator &pc)
int unpackSharedDmanPartitions (ProcessCommunicator &pc)
void addSharedDofmanPartitions (int _locnum, IntArray _partitions)
const char * giveClassName () const override
 Returns class name of the receiver.
int packMigratingData (Domain *, ProcessCommunicator &pc)
int unpackMigratingData (Domain *, ProcessCommunicator &pc)
void deleteRemoteDofManagers (Domain *)
void deleteRemoteElements (Domain *)
void initializeWtp (IntArray &wtp)

Protected Attributes

IntArray gToLMap
 Element numbering maps.
IntArray lToGMap
idx_t * elmdist
int myGlobNumOffset
real_t * tpwgts
 Partition weights (user input).
IntArray dofManState
 Array of DofManMode(s).
std ::vector< IntArraydofManPartitions
 Array of dof man partitions.
IntArray elementPart
 Partition vector of the locally-stored elements.
Protected Attributes inherited from oofem::LoadBalancer
Domaindomain
std ::vector< std ::unique_ptr< WorkTransferPlugin > > wtpList
 List of work transfer plugins.

Additional Inherited Members

Public Types inherited from oofem::LoadBalancer
enum  DofManMode { DM_NULL , DM_Local , DM_Shared , DM_Remote }

Detailed Description

ParMetis load balancer.

Definition at line 57 of file parmetisloadbalancer.h.

Constructor & Destructor Documentation

◆ ParmetisLoadBalancer()

oofem::ParmetisLoadBalancer::ParmetisLoadBalancer ( Domain * d)

Definition at line 55 of file parmetisloadbalancer.C.

References elmdist, oofem::LoadBalancer::LoadBalancer(), and tpwgts.

◆ ~ParmetisLoadBalancer()

oofem::ParmetisLoadBalancer::~ParmetisLoadBalancer ( )
virtual

Definition at line 61 of file parmetisloadbalancer.C.

References elmdist, and tpwgts.

Member Function Documentation

◆ addSharedDofmanPartitions()

void oofem::ParmetisLoadBalancer::addSharedDofmanPartitions ( int _locnum,
IntArray _partitions )
protected

Definition at line 558 of file parmetisloadbalancer.C.

References dofManPartitions.

Referenced by unpackSharedDmanPartitions().

◆ calculateLoadTransfer()

◆ determineDofManState()

int oofem::ParmetisLoadBalancer::determineDofManState ( int idofman,
int myrank,
int npart,
IntArray * dofManPartitions )
protected

◆ giveClassName()

const char * oofem::ParmetisLoadBalancer::giveClassName ( ) const
inlineoverrideprotectedvirtual

Returns class name of the receiver.

Implements oofem::LoadBalancer.

Definition at line 105 of file parmetisloadbalancer.h.

◆ giveDofManPartitions()

IntArray * oofem::ParmetisLoadBalancer::giveDofManPartitions ( int idofman)
overridevirtual

Returns the partition list of given dofmanager after load balancing.

Implements oofem::LoadBalancer.

Definition at line 475 of file parmetisloadbalancer.C.

References dofManPartitions.

Referenced by packSharedDmanPartitions().

◆ giveDofManState()

LoadBalancer::DofManMode oofem::ParmetisLoadBalancer::giveDofManState ( int idofman)
overridevirtual

Returns the label of dofmanager after load balancing.

Implements oofem::LoadBalancer.

Definition at line 468 of file parmetisloadbalancer.C.

References dofManState.

◆ giveElementPartition()

int oofem::ParmetisLoadBalancer::giveElementPartition ( int ielem)
overridevirtual

Returns the new partition number assigned to local element after LB.

Implements oofem::LoadBalancer.

Definition at line 481 of file parmetisloadbalancer.C.

References elementPart.

Referenced by labelDofManagers().

◆ giveGlobalElementNumber()

int oofem::ParmetisLoadBalancer::giveGlobalElementNumber ( int locnum)
inlineprotected

Definition at line 89 of file parmetisloadbalancer.h.

References lToGMap.

◆ giveLocalElementNumber()

int oofem::ParmetisLoadBalancer::giveLocalElementNumber ( int globnum)
inlineprotected

Definition at line 88 of file parmetisloadbalancer.h.

References gToLMap, and myGlobNumOffset.

◆ handleMasterSlaveDofManLinks()

void oofem::ParmetisLoadBalancer::handleMasterSlaveDofManLinks ( )
protected

◆ initGlobalParmetisElementNumbering()

void oofem::ParmetisLoadBalancer::initGlobalParmetisElementNumbering ( )
protected

◆ labelDofManagers()

◆ packSharedDmanPartitions()

◆ unpackSharedDmanPartitions()

Member Data Documentation

◆ dofManPartitions

std :: vector< IntArray > oofem::ParmetisLoadBalancer::dofManPartitions
protected

◆ dofManState

IntArray oofem::ParmetisLoadBalancer::dofManState
protected

Array of DofManMode(s).

Definition at line 67 of file parmetisloadbalancer.h.

Referenced by giveDofManState(), and labelDofManagers().

◆ elementPart

IntArray oofem::ParmetisLoadBalancer::elementPart
protected

Partition vector of the locally-stored elements.

Definition at line 71 of file parmetisloadbalancer.h.

Referenced by calculateLoadTransfer(), and giveElementPartition().

◆ elmdist

idx_t* oofem::ParmetisLoadBalancer::elmdist
protected

◆ gToLMap

IntArray oofem::ParmetisLoadBalancer::gToLMap
protected

Element numbering maps.

Definition at line 61 of file parmetisloadbalancer.h.

Referenced by giveLocalElementNumber(), and initGlobalParmetisElementNumbering().

◆ lToGMap

IntArray oofem::ParmetisLoadBalancer::lToGMap
protected

◆ myGlobNumOffset

int oofem::ParmetisLoadBalancer::myGlobNumOffset
protected

◆ tpwgts

real_t* oofem::ParmetisLoadBalancer::tpwgts
protected

Partition weights (user input).

Definition at line 65 of file parmetisloadbalancer.h.

Referenced by calculateLoadTransfer(), ParmetisLoadBalancer(), and ~ParmetisLoadBalancer().


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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011