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 114 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 154 of file Zoltan2_EvaluatePartition.hpp.

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

Definition at line 180 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 190 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 212 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 468 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 258 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 280 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 296 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 312 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 345 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 357 of file Zoltan2_EvaluatePartition.hpp.

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

getTotalEdgeCut

Definition at line 382 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 394 of file Zoltan2_EvaluatePartition.hpp.

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

getTotalMessages

Definition at line 419 of file Zoltan2_EvaluatePartition.hpp.

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

getMaxMessages

Definition at line 433 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 446 of file Zoltan2_EvaluatePartition.hpp.


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