Zoltan2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Protected Member Functions | List of all members
Zoltan2::EvaluatePartition< Adapter > Class Template Reference

A class that computes and returns quality metrics. More...

#include <Zoltan2_EvaluatePartition.hpp>

Inheritance diagram for Zoltan2::EvaluatePartition< Adapter >:
Inheritance graph
[legend]
Collaboration diagram for Zoltan2::EvaluatePartition< Adapter >:
Collaboration graph
[legend]

Public Member Functions

virtual ~EvaluatePartition ()
 
 EvaluatePartition (const Adapter *ia, ParameterList *p, const PartitioningSolution< Adapter > *soln, const RCP< const GraphModel< typename Adapter::base_adapter_t > > &graphModel=Teuchos::null)
 Constructor where communicator is Teuchos default. More...
 
 EvaluatePartition (const Adapter *ia, ParameterList *p, const RCP< const Comm< int > > &problemComm, const PartitioningSolution< Adapter > *soln, const RCP< const GraphModel< typename Adapter::base_adapter_t > > &graphModel=Teuchos::null)
 Constructor where Teuchos communicator is specified. More...
 
ArrayView< RCP
< base_metric_type > > 
getAllMetricsOfType (std::string metricType) const
 Return the metric list for types matching the given metric type. More...
 
scalar_t getObjectCountImbalance () const
 Return the object count imbalance. More...
 
scalar_t getNormedImbalance () const
 Return the object normed weight imbalance. Normed imbalance is only valid if there is at least 2 elements - the second one is the normed imbalance. If we have weights (which start at the second element) the spec is to have this return that element. More...
 
scalar_t getWeightImbalance (int weightIndex) const
 Return the imbalance for the requested weight. More...
 
scalar_t getMaxEdgeCut () const
 Return the max cut for the requested weight. More...
 
scalar_t getMaxWeightEdgeCut (int weightIndex) const
 getMaxWeightEdgeCuts weighted for the specified index More...
 
scalar_t getTotalEdgeCut () const
 getTotalEdgeCut More...
 
scalar_t getTotalWeightEdgeCut (int weightIndex) const
 getTotalWeightEdgeCut weighted for the specified index More...
 
scalar_t getTotalMessages () const
 getTotalMessages More...
 
scalar_t getMaxMessages () const
 getMaxMessages More...
 
void printMetrics (std::ostream &os) const
 Print all metrics. More...
 
- Public Member Functions inherited from Zoltan2::EvaluateBaseClassRoot
virtual ~EvaluateBaseClassRoot ()
 

Protected Member Functions

void sharedConstructor (const Adapter *ia, ParameterList *p, const RCP< const Comm< int > > &problemComm, const PartitioningSolution< Adapter > *soln, const RCP< const GraphModel< typename Adapter::base_adapter_t > > &graphModel)
 
 EvaluatePartition (const Adapter *ia, ParameterList *p, const RCP< const Comm< int > > &problemComm, const PartitioningSolution< Adapter > *soln, bool force_evaluate, const RCP< const GraphModel< typename Adapter::base_adapter_t > > &graphModel=Teuchos::null)
 Constructor where communicator is Teuchos default, and takes another parameter whether to evaluate metrics within the constructor or not. More...
 
virtual void calculate_graph_metrics (const RCP< const Environment > &_env, const RCP< const Comm< int > > &_problemComm, const RCP< const GraphModel< typename Adapter::base_adapter_t > > &_graph, const ArrayView< const typename Adapter::part_t > &_partArray, typename Adapter::part_t &_numGlobalParts, ArrayRCP< RCP< BaseClassMetrics< typename Adapter::scalar_t > > > &_metricsBase, ArrayRCP< typename Adapter::scalar_t > &_globalSums)
 

Detailed Description

template<typename Adapter>
class Zoltan2::EvaluatePartition< Adapter >

A class that computes and returns quality metrics.

Todo:

For some problems it will be necessary to build the Model again in order to compute metrics. For now we don't have any problems like that.

write a unit test for this class

Examples:
rcb_C.cpp.

Definition at line 34 of file Zoltan2_EvaluatePartition.hpp.

Constructor & Destructor Documentation

template<typename Adapter >
Zoltan2::EvaluatePartition< Adapter >::EvaluatePartition ( const Adapter *  ia,
ParameterList *  p,
const RCP< const Comm< int > > &  problemComm,
const PartitioningSolution< Adapter > *  soln,
bool  force_evaluate,
const RCP< const GraphModel< typename Adapter::base_adapter_t > > &  graphModel = Teuchos::null 
)
inlineprotected

Constructor where communicator is Teuchos default, and takes another parameter whether to evaluate metrics within the constructor or not.

Parameters
iathe problem input adapter
pthe parameter list
problemCommthe problem communicator
solnthe solution
force_evaluatewhether to evaluate within to constructor or not.
graphModelthe graph model The constructor does global communication to compute the metrics . The rest of the methods are local.

Definition at line 74 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
virtual Zoltan2::EvaluatePartition< Adapter >::~EvaluatePartition ( )
inlinevirtual

Definition at line 100 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
Zoltan2::EvaluatePartition< Adapter >::EvaluatePartition ( const Adapter *  ia,
ParameterList *  p,
const PartitioningSolution< Adapter > *  soln,
const RCP< const GraphModel< typename Adapter::base_adapter_t > > &  graphModel = Teuchos::null 
)
inline

Constructor where communicator is Teuchos default.

Parameters
iathe problem input adapter
pthe parameter list
solnthe solution
graphModelthe graph model The constructor does global communication to compute the metrics. The rest of the methods are local.

Definition at line 110 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
Zoltan2::EvaluatePartition< Adapter >::EvaluatePartition ( const Adapter *  ia,
ParameterList *  p,
const RCP< const Comm< int > > &  problemComm,
const PartitioningSolution< Adapter > *  soln,
const RCP< const GraphModel< typename Adapter::base_adapter_t > > &  graphModel = Teuchos::null 
)
inline

Constructor where Teuchos communicator is specified.

Parameters
iathe problem input adapter
pthe parameter list
problemCommthe problem communicator
solnthe solution
graphModelthe graph model The constructor does global communication to compute the metrics. The rest of the methods are local.

Definition at line 132 of file Zoltan2_EvaluatePartition.hpp.

Member Function Documentation

template<typename Adapter >
void Zoltan2::EvaluatePartition< Adapter >::sharedConstructor ( const Adapter *  ia,
ParameterList *  p,
const RCP< const Comm< int > > &  problemComm,
const PartitioningSolution< Adapter > *  soln,
const RCP< const GraphModel< typename Adapter::base_adapter_t > > &  graphModel 
)
protected

Definition at line 388 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
virtual void Zoltan2::EvaluatePartition< Adapter >::calculate_graph_metrics ( const RCP< const Environment > &  _env,
const RCP< const Comm< int > > &  _problemComm,
const RCP< const GraphModel< typename Adapter::base_adapter_t > > &  _graph,
const ArrayView< const typename Adapter::part_t > &  _partArray,
typename Adapter::part_t _numGlobalParts,
ArrayRCP< RCP< BaseClassMetrics< typename Adapter::scalar_t > > > &  _metricsBase,
ArrayRCP< typename Adapter::scalar_t > &  _globalSums 
)
inlineprotectedvirtual
template<typename Adapter >
ArrayView<RCP<base_metric_type> > Zoltan2::EvaluatePartition< Adapter >::getAllMetricsOfType ( std::string  metricType) const
inline

Return the metric list for types matching the given metric type.

Definition at line 178 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getObjectCountImbalance ( ) const
inline

Return the object count imbalance.

Examples:
rcb_C.cpp.

Definition at line 200 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getNormedImbalance ( ) const
inline

Return the object normed weight imbalance. Normed imbalance is only valid if there is at least 2 elements - the second one is the normed imbalance. If we have weights (which start at the second element) the spec is to have this return that element.

Definition at line 216 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getWeightImbalance ( int  weightIndex) const
inline

Return the imbalance for the requested weight.

Examples:
rcb_C.cpp.

Definition at line 232 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getMaxEdgeCut ( ) const
inline

Return the max cut for the requested weight.

Definition at line 265 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getMaxWeightEdgeCut ( int  weightIndex) const
inline

getMaxWeightEdgeCuts weighted for the specified index

Definition at line 277 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getTotalEdgeCut ( ) const
inline

getTotalEdgeCut

Definition at line 302 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getTotalWeightEdgeCut ( int  weightIndex) const
inline

getTotalWeightEdgeCut weighted for the specified index

Definition at line 314 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getTotalMessages ( ) const
inline

getTotalMessages

Definition at line 339 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
scalar_t Zoltan2::EvaluatePartition< Adapter >::getMaxMessages ( ) const
inline

getMaxMessages

Definition at line 353 of file Zoltan2_EvaluatePartition.hpp.

template<typename Adapter >
void Zoltan2::EvaluatePartition< Adapter >::printMetrics ( std::ostream &  os) const
inlinevirtual

Print all metrics.

Reimplemented from Zoltan2::EvaluateBaseClassRoot.

Examples:
rcb_C.cpp.

Definition at line 366 of file Zoltan2_EvaluatePartition.hpp.


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