ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
ALLLoadBalancer Class Reference
Inheritance diagram for ALLLoadBalancer:
LoadBalancer

Public Member Functions

 ALLLoadBalancer (std::array< double, 3 > boxMin, std::array< double, 3 > boxMax, double gamma, MPI_Comm comm, std::array< size_t, 3 > globalSize, std::array< size_t, 3 > localCoordinates, std::array< double, 3 > minimalPartitionSize)
 
std::tuple< std::array< double, 3 >, std::array< double, 3 > > rebalance (double work) override
 
void readXML (XMLfileUnits &xmlconfig) override
 
std::array< bool, 3 > getCoversWholeDomain () override
 
- Public Member Functions inherited from LoadBalancer
virtual ~LoadBalancer ()=default
 

Member Function Documentation

◆ getCoversWholeDomain()

std::array<bool, 3> ALLLoadBalancer::getCoversWholeDomain ( )
inlineoverridevirtual

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.

Implements LoadBalancer.

◆ readXML()

void ALLLoadBalancer::readXML ( XMLfileUnits xmlconfig)
inlineoverridevirtual

Read Config file

Parameters
xmlconfig

Implements LoadBalancer.

◆ rebalance()

std::tuple< std::array< double, 3 >, std::array< double, 3 > > ALLLoadBalancer::rebalance ( double  work)
overridevirtual

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.

Implements LoadBalancer.


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