ug4
|
Partitioners can be used inside a LoadBalancer or separately to create partition maps. More...
#include <partitioner.h>
Public Member Functions | |
virtual ConstSPProcessHierarchy | current_process_hierarchy () const =0 |
virtual void | enable_static_partitioning (bool) |
virtual SubsetHandler & | get_partitions ()=0 |
virtual const std::vector< int > * | get_process_map () const =0 |
returns the processes map. Updated during partitioning. may be NULL. More... | |
IPartitioner () | |
virtual ConstSPProcessHierarchy | next_process_hierarchy () const =0 |
virtual bool | partition (size_t baseLvl, size_t elementThreshold)=0 |
virtual bool | problems_occurred () |
indicates whether problems occurred during the last partitioning More... | |
virtual void | set_balance_weights (SPBalanceWeights balanceWeights) |
virtual void | set_communication_weights (SPCommunicationWeights commWeights) |
virtual void | set_next_process_hierarchy (SPProcessHierarchy procHierarchy)=0 |
virtual void | set_partition_post_processor (SPPartitionPostProcessor) |
virtual void | set_partition_pre_processor (SPPartitionPreProcessor) |
virtual void | set_subset_handler (SmartPtr< SubsetHandler >) |
void | set_verbose (bool verbose) |
virtual bool | supports_balance_weights () const |
virtual bool | supports_communication_weights () const |
virtual bool | supports_repartitioning () const |
bool | verbose () const |
virtual | ~IPartitioner () |
virtual void | enable_clustered_siblings (bool bEnable) |
virtual bool | clustered_siblings_enabled () |
Protected Attributes | |
bool | m_problemsOccurred |
Private Attributes | |
bool | m_clusteredSiblings |
bool | m_verbose |
Partitioners can be used inside a LoadBalancer or separately to create partition maps.
This is the abstract base class for partitioners.
|
inline |
|
inlinevirtual |
|
inlinevirtual |
clustered siblings help to ensure that all vertices which are connected to a constrained vertex through are on the same process as the constrained vertex. If only refinement is performed, it would be sufficient to only cluster constrained siblings. However, coarsening would be rather complicated in that case, since it is rather complicated to introduce constrained sibling elements if a previously unconstrained sibling is not located on the same process...
If you only perform global refinement, you may safely disable clustered siblings. The distribution quality is most likely better in this case.
References m_clusteredSiblings.
|
pure virtual |
Implemented in ug::Partitioner_DynamicBisection< TElem, dim >.
|
inlinevirtual |
clustered siblings help to ensure that all vertices which are connected to a constrained vertex through are on the same process as the constrained vertex. If only refinement is performed, it would be sufficient to only cluster constrained siblings. However, coarsening would be rather complicated in that case, since it is rather complicated to introduce constrained sibling elements if a previously unconstrained sibling is not located on the same process...
If you only perform global refinement, you may safely disable clustered siblings. The distribution quality is most likely better in this case.
References m_clusteredSiblings.
|
inlinevirtual |
Reimplemented in ug::Partitioner_DynamicBisection< TElem, dim >.
References UG_LOG.
|
pure virtual |
Implemented in ug::Partitioner_DynamicBisection< TElem, dim >.
|
pure virtual |
returns the processes map. Updated during partitioning. may be NULL.
If NULL is returned, this means that each subset index correspons to a global proc-rank.
Implemented in ug::Partitioner_DynamicBisection< TElem, dim >.
|
pure virtual |
Implemented in ug::Partitioner_DynamicBisection< TElem, dim >.
|
pure virtual |
If the partitioner returns false, no partition-map has been created and no redistribution should be performed. Note, that returning false is not a sign of an error - it may even be a feature of a particular partitioner.
Implemented in ug::Partitioner_DynamicBisection< TElem, dim >.
|
inlinevirtual |
indicates whether problems occurred during the last partitioning
References m_problemsOccurred.
|
inlinevirtual |
Reimplemented in ug::Partitioner_DynamicBisection< TElem, dim >.
References supports_balance_weights(), and UG_COND_THROW.
|
inlinevirtual |
References supports_communication_weights(), and UG_COND_THROW.
|
pure virtual |
Implemented in ug::Partitioner_DynamicBisection< TElem, dim >.
|
inlinevirtual |
Reimplemented in ug::Partitioner_DynamicBisection< TElem, dim >.
References UG_THROW.
|
inlinevirtual |
Reimplemented in ug::Partitioner_DynamicBisection< TElem, dim >.
References UG_THROW.
|
inlinevirtual |
Reimplemented in ug::Partitioner_DynamicBisection< TElem, dim >.
References UG_LOG.
|
inlinevirtual |
Reimplemented in ug::Partitioner_DynamicBisection< TElem, dim >.
Referenced by set_balance_weights().
|
inlinevirtual |
Referenced by set_communication_weights().
|
inlinevirtual |
Reimplemented in ug::Partitioner_DynamicBisection< TElem, dim >.
|
inline |
References m_verbose.
Referenced by set_verbose().
|
private |
Referenced by clustered_siblings_enabled(), and enable_clustered_siblings().
|
protected |
Referenced by problems_occurred().
|
private |
Referenced by set_verbose(), and verbose().