OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::ParmetisLoadBalancer Class Reference

ParMetis load balancer. More...

#include <parmetisloadbalancer.h>

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

Public Member Functions

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

Protected Member Functions

void handleMasterSlaveDofManLinks ()
 
void initGlobalParmetisElementNumbering ()
 
int giveLocalElementNumber (int globnum)
 
int giveGlobalElementNumber (int locnum)
 
void labelDofManagers ()
 Label local partition nodes (the nodes that are local or shared). More...
 
int determineDofManState (int idofman, int myrank, int npart, IntArray *dofManPartitions)
 
int packSharedDmanPartitions (ProcessCommunicator &pc)
 
int unpackSharedDmanPartitions (ProcessCommunicator &pc)
 
void addSharedDofmanPartitions (int _locnum, IntArray _partitions)
 
virtual const char * giveClassName () const
 Returns class name of the receiver. More...
 
- Protected Member Functions inherited from oofem::LoadBalancer
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. More...
 
IntArray lToGMap
 
idx_t * elmdist
 
int myGlobNumOffset
 
real_t * tpwgts
 Partition weights (user input). More...
 
IntArray dofManState
 Array of DofManMode(s). More...
 
std::vector< IntArraydofManPartitions
 Array of dof man partitions. More...
 
IntArray elementPart
 Partition vector of the locally-stored elements. More...
 
- Protected Attributes inherited from oofem::LoadBalancer
Domaindomain
 
std::vector< std::unique_ptr< WorkTransferPlugin > > wtpList
 List of work transfer plugins. More...
 

Additional Inherited Members

- Public Types inherited from oofem::LoadBalancer
enum  DofManMode { DM_NULL, DM_Local, DM_Shared, DM_Remote }
 Describes the state of dofmanager after load balancing on the local partition. More...
 

Detailed Description

ParMetis load balancer.

Definition at line 57 of file parmetisloadbalancer.h.

Constructor & Destructor Documentation

oofem::ParmetisLoadBalancer::ParmetisLoadBalancer ( Domain d)

Definition at line 55 of file parmetisloadbalancer.C.

References elmdist, and tpwgts.

oofem::ParmetisLoadBalancer::~ParmetisLoadBalancer ( )
virtual

Definition at line 61 of file parmetisloadbalancer.C.

References elmdist, and tpwgts.

Member Function Documentation

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

Definition at line 558 of file parmetisloadbalancer.C.

References dofManPartitions.

Referenced by unpackSharedDmanPartitions().

virtual const char* oofem::ParmetisLoadBalancer::giveClassName ( ) const
inlineprotectedvirtual

Returns class name of the receiver.

Implements oofem::LoadBalancer.

Definition at line 105 of file parmetisloadbalancer.h.

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

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().

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

Returns the label of dofmanager after load balancing.

Implements oofem::LoadBalancer.

Definition at line 468 of file parmetisloadbalancer.C.

References oofem::IntArray::at(), and dofManState.

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

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

Implements oofem::LoadBalancer.

Definition at line 481 of file parmetisloadbalancer.C.

References oofem::IntArray::at(), and elementPart.

Referenced by labelDofManagers().

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

Definition at line 89 of file parmetisloadbalancer.h.

References oofem::IntArray::at().

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

Definition at line 88 of file parmetisloadbalancer.h.

References oofem::IntArray::at().

Member Data Documentation

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

Array of dof man partitions.

Definition at line 69 of file parmetisloadbalancer.h.

Referenced by addSharedDofmanPartitions(), giveDofManPartitions(), handleMasterSlaveDofManLinks(), and labelDofManagers().

IntArray oofem::ParmetisLoadBalancer::dofManState
protected

Array of DofManMode(s).

Definition at line 67 of file parmetisloadbalancer.h.

Referenced by giveDofManState(), and labelDofManagers().

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().

idx_t* oofem::ParmetisLoadBalancer::elmdist
protected
IntArray oofem::ParmetisLoadBalancer::gToLMap
protected

Element numbering maps.

Definition at line 61 of file parmetisloadbalancer.h.

Referenced by initGlobalParmetisElementNumbering().

IntArray oofem::ParmetisLoadBalancer::lToGMap
protected

Definition at line 61 of file parmetisloadbalancer.h.

Referenced by initGlobalParmetisElementNumbering().

int oofem::ParmetisLoadBalancer::myGlobNumOffset
protected

Definition at line 63 of file parmetisloadbalancer.h.

Referenced by initGlobalParmetisElementNumbering().

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 documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:39 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011