ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
LoadBalancer Class Referenceabstract

#include <LoadBalancer.h>

Inheritance diagram for LoadBalancer:
ALLLoadBalancer

Public Member Functions

virtual ~LoadBalancer ()=default
 
virtual std::tuple< std::array< double, 3 >, std::array< double, 3 > > rebalance (double work)=0
 
virtual void readXML (XMLfileUnits &xmlconfig)=0
 
virtual std::array< bool, 3 > getCoversWholeDomain ()=0
 

Detailed Description

LoadBalancer class for the usage of arbitrary load balancing classes that are handled by GeneralDomainDecomposition.

Constructor & Destructor Documentation

◆ ~LoadBalancer()

virtual LoadBalancer::~LoadBalancer ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ getCoversWholeDomain()

virtual std::array<bool, 3> LoadBalancer::getCoversWholeDomain ( )
pure virtual

Indicates if the current process / MPI rank spans the full length of a dimension.

Returns
Array of bools, for each dimension one value: true, iff the process spans the entire domain along this dimension.

Implemented in ALLLoadBalancer.

◆ readXML()

virtual void LoadBalancer::readXML ( XMLfileUnits xmlconfig)
pure virtual

Read Config file

Parameters
xmlconfig

Implemented in ALLLoadBalancer.

◆ rebalance()

virtual std::tuple<std::array<double, 3>, std::array<double, 3> > LoadBalancer::rebalance ( double  work)
pure virtual

The rebalancing call. Based on the current domain and the work for that domain this function determines a new domain decomposition that provides a better load balancing. This call will normally include communication and exchange of information with other processes.

Parameters
workArbitrary unit of work, e.g., time for the current process
Returns
New domain boundaries for the current process. First entry is the new boxMin, second the new boxMax.

Implemented in ALLLoadBalancer.


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