Load balance over all mesh parts. More...
Public Member Functions | |
virtual void | balance (MeshTag *weights, double tolerance)=0 |
call collective load balancing |
Load balance over all mesh parts.
usually the construction of a specific Balancer will ask for a mesh object, which is the mesh to be acted upon
virtual void apf::Balancer::balance | ( | MeshTag * | weights, | |
double | tolerance | |||
) | [pure virtual] |
call collective load balancing
weights | a tag of one double that should be attached to all the elements. balancers will try to balance the total element weight of the existing parts. Some splitters support a weights pointer of zero, in which case elements are weighted equally | |
tolerance | a factor greater than one at such that if max_weight < tolerance * average_weight the balancer will consider the parts balanced |
the Balancer is responsible for running migrations to improve the load balance by its implementation-defined criteria. It is not allowed to modify anything besides partitioning