33 #ifndef __H__UG__load_balancer__
34 #define __H__UG__load_balancer__
155 template <
class TElem>
parameterString partitioner
Serialization of data associated with grid elements.
Definition: serialization.h:186
void add(SPVertexDataSerializer cb)
Adds a callback class for serialization and deserialization.
Definition: serialization.cpp:69
A load-balancer redistributes grids using the specified partitioner and process-hierarchy.
Definition: load_balancer.h:51
virtual void set_next_process_hierarchy(SPProcessHierarchy procHierarchy)
Sets a callback class which provides connection weights between two neighbor elements.
Definition: load_balancer.cpp:307
void print_last_quality_record() const
Definition: load_balancer.cpp:565
virtual void set_balance_weights(SPBalanceWeights balanceWeights)
Sets a callback class which provides the balance weight for a given element.
Definition: load_balancer.cpp:287
number estimate_distribution_quality()
Definition: load_balancer.cpp:453
StringStreamTable m_qualityRecords
Definition: load_balancer.h:166
virtual void add_serializer(SPGridDataSerializer cb)
add serialization callbacks.
Definition: load_balancer.h:139
GridDataSerializationHandler m_serializer
Definition: load_balancer.h:165
virtual void set_balance_threshold(number threshold)
If the balance falls below the given threshold, then rebalance will perform redistribution.
Definition: load_balancer.cpp:313
virtual void set_grid(MultiGrid *mg)
Definition: load_balancer.cpp:269
bool m_createVerticalInterfaces
Definition: load_balancer.h:167
LoadBalancer()
Definition: load_balancer.cpp:253
number estimate_distribution_quality_impl(std::vector< number > *pLvlQualitiesOut)
Definition: load_balancer.cpp:364
virtual void add_serializer(SPFaceDataSerializer cb)
add serialization callbacks.
Definition: load_balancer.h:137
virtual void add_serializer(SPVertexDataSerializer cb)
add serialization callbacks.
Definition: load_balancer.h:135
size_t m_elementThreshold
Definition: load_balancer.h:160
virtual void enable_vertical_interface_creation(bool enable)
Definition: load_balancer.cpp:275
void create_quality_record(const char *label)
Definition: load_balancer.cpp:527
bool problems_occurred()
indicates whether problems occurred during the last rebalancing.
Definition: load_balancer.cpp:325
virtual ~LoadBalancer()
Definition: load_balancer.cpp:264
virtual bool rebalance()
performs load balancing if the balance is too bad or if a distribution level has been reached.
Definition: load_balancer.cpp:460
virtual void set_partitioner(SPPartitioner partitioner)
Sets the partitioner which is used to partition the grid into balanced parts.
Definition: load_balancer.cpp:281
SPPartitioner m_partitioner
Definition: load_balancer.h:162
SPBalanceWeights m_balanceWeights
Definition: load_balancer.h:163
MultiGrid * m_mg
Definition: load_balancer.h:158
virtual void add_serializer(SPEdgeDataSerializer cb)
add serialization callbacks.
Definition: load_balancer.h:136
SPProcessHierarchy m_processHierarchy
Definition: load_balancer.h:161
void print_quality_records() const
Definition: load_balancer.cpp:560
virtual void add_serializer(SPVolumeDataSerializer cb)
add serialization callbacks.
Definition: load_balancer.h:138
number m_balanceThreshold
Definition: load_balancer.h:159
virtual void set_element_threshold(size_t threshold)
Definition: load_balancer.cpp:319
Definition: multi_grid.h:72
double number
Definition: types.h:124