ALL 0.9.3
A Loadbalacing Library
|
#include <ALL_Voronoi.hpp>
Public Member Functions | |
Voronoi_LB () | |
default constructor | |
Voronoi_LB (int d, W w, T g) | |
~Voronoi_LB () override | |
default destructor | |
virtual void | balance (int step) override |
virtual W | getEstimatedEfficiency () override |
virtual std::vector< int > & | getNeighbors () override |
std::vector< T > & | getNeighborVertices () |
virtual void | setAdditionalData (known_unused const void *data) override |
void | setup () override |
setup internal data structures and parameters | |
![]() | |
LB (const int dim, const T g) | |
virtual | ~LB ()=default |
destructor | |
virtual int | getDimension () |
double | getEfficiency () |
virtual const T | getGamma () |
virtual const std::vector< T > & | getMinDomainSize () |
std::vector< T > & | getNeighborVertices () |
int | getNVertices () |
virtual std::vector< Point< T > > & | getPrevVertices () |
virtual const std::vector< T > & | getSysSize () |
virtual std::vector< Point< T > > & | getVertices () |
virtual std::vector< W > & | getWork () |
virtual void | setAdditionalData (const void *data)=0 |
virtual void | setCommunicator (const MPI_Comm comm) |
virtual void | setDimension (const int d) |
virtual void | setGamma (const T g) |
virtual void | setMinDomainSize (const std::vector< T > &minSize) |
virtual void | setSysSize (const std::vector< T > &newSysSize) |
virtual void | setVertices (const std::vector< Point< T > > &vertices_in) |
virtual void | setWork (const std::vector< W > &w) |
virtual void | setWork (const W w) |
Public Attributes | |
voro::voronoicell | vc |
Additional Inherited Members | |
![]() | |
void | resizeVertices (const int newSize) |
![]() | |
int | dimension |
dimension of the used vertices | |
T | gamma |
correction factor | |
std::vector< int > | global_dims |
dimensions of the global process grid | |
MPI_Comm | globalComm |
used MPI communicator | |
std::vector< int > | local_coords |
cartesian coordinates of the local domain in the process grid | |
int | localRank |
local rank in the used MPI communicator | |
std::vector< T > | minSize |
std::vector< T > | neighborVertices |
vertices describing neighboring domains | |
std::vector< int > | periodicity |
periodicity of the MPI communicator / system | |
std::vector< Point< T > > | prevVertices |
original vertices before previous balancing step | |
std::vector< T > | sysSize |
(orthogonal) system size | |
std::vector< Point< T > > | vertices |
local vertices after previous balancing step | |
std::vector< W > | work |
local work | |
Load-balancing scheme based on Voronoi cells and the shift of their anchor points due to the ratio of work assigned to the local and neighboring domains. For each domain a center of work, i.e. the average of the particle locations, weighted by their indivual work share is computed (vertex 2). This and the work load of the local and the neighboring domains are used to compute a shift of the anchor point in the direction of the largest work load.
T | data for vertices and related data |
W | data for work and related data |
Definition at line 69 of file ALL_Voronoi.hpp.
|
inline |
default constructor
Definition at line 72 of file ALL_Voronoi.hpp.
|
inline |
constructor initializing basic parameters
[in] | d | the dimension of the used vertices |
[in] | w | the scalar work assigned to the local domain |
[in] | g | the correction factor gamma |
Definition at line 77 of file ALL_Voronoi.hpp.
|
override |
default destructor
Definition at line 130 of file ALL_Voronoi.hpp.
|
overridevirtual |
method to execute a load-balancing step
[in] | step | number of the load-balancing step |
Implements ALL::LB< T, W >.
Definition at line 176 of file ALL_Voronoi.hpp.
|
inlineoverridevirtual |
method to get an estimated work distribution after the balance step (currently only implemented in ALL::HISTOGRAM!)
[out] | double | providing the estimated LB after the balance step |
Implements ALL::LB< T, W >.
Definition at line 110 of file ALL_Voronoi.hpp.
|
overridevirtual |
method to provide a list of the neighbors of the local domain
[out] | list | reference to a std::vector of integers where the list of neighbors will be assigned to |
Implements ALL::LB< T, W >.
Definition at line 557 of file ALL_Voronoi.hpp.
std::vector< T > & ALL::Voronoi_LB< T, W >::getNeighborVertices | ( | ) |
method to get a list of the vertices of the neighboring domains
[out] | ret | list of vertices of neighboring domains |
|
inlineoverridevirtual |
method to set specific data structures (unused for tensor grid method)
[in] | data | pointer to the data structure |
Definition at line 101 of file ALL_Voronoi.hpp.
|
overridevirtual |
setup internal data structures and parameters
Implements ALL::LB< T, W >.
Definition at line 138 of file ALL_Voronoi.hpp.
voro::voronoicell ALL::Voronoi_LB< T, W >::vc |
Definition at line 82 of file ALL_Voronoi.hpp.