Isorropia: Partitioning, Load Balancing and more Version 3.0
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes
Isorropia::Epetra::ZoltanLibClass Class Reference

#include <Isorropia_EpetraZoltanLib.hpp>

Inheritance diagram for Isorropia::Epetra::ZoltanLibClass:
Inheritance graph
[legend]
Collaboration diagram for Isorropia::Epetra::ZoltanLibClass:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< const Epetra_MultiVector > input_coords, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< CostDescriber > costs, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< CostDescriber > costs, Teuchos::RCP< const Epetra_MultiVector > input_coords, Teuchos::RCP< const Epetra_MultiVector > weights, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< const Epetra_MultiVector > input_coords, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< CostDescriber > costs, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< CostDescriber > costs, Teuchos::RCP< const Epetra_MultiVector > input_coords, Teuchos::RCP< const Epetra_MultiVector > weights, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_MultiVector > input_coords, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_MultiVector > input_coords, Teuchos::RCP< const Epetra_MultiVector > weights, int inputType=unspecified_input_)
 ZoltanLibClass (Teuchos::RCP< const Epetra_BlockMap > input_map, int inputType=unspecified_input_)
virtual int repartition (Teuchos::ParameterList &paramlist, std::vector< int > &newPartitions, int &exportsSize, std::vector< int > &imports)
 Method to partition the object that the ZoltanLibClass was contructed with.
virtual int color (Teuchos::ParameterList &paramlist, std::vector< int > &colorAssignment)
 Method to color the object that the ZoltanLibClass was contructed with.
virtual int order (Teuchos::ParameterList &paramlist, std::vector< int > &orderAssignment)
 Method to order the object that the ZoltanLibClass was contructed with.

Public Attributes

int input_type_
int numPartSizes
int * partGIDs
float * partSizes

Static Public Attributes

static const int hgraph_input_ = 1
 input_type_ == hgraph_input_ This indicates that the matrix or graph represents a hypergraph.
static const int hgraph2d_finegrain_input_ = 2
 input_type_ == hgraph2d_finegrain_input_ This indicates that the matrix or graph represents a hypergraph.
static const int graph_input_ = 3
 input_type_ == graph_input_ This indicates that the square symmetric matrix or graph represents a graph in the sense that row/column IDs are vertices and non-zeroes represent edges.
static const int geometric_input_ = 4
 input_type_ == geometric_input_ This indicates that the Epetra_MultiVector represents geometric coordinates.
static const int hgraph_graph_input_ = 5
 input_type_ == hgraph_graph_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).
static const int hgraph_geometric_input_ = 6
 input_type_ == hgraph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).
static const int graph_geometric_input_ = 7
 input_type_ == graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).
static const int hgraph_graph_geometric_input_ = 8
 input_type_ == hgraph_graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).
static const int simple_input_ = 9
 input_type_ == simple_input_ This is used to indicate that a simple partitiong method (block, cyclic, or random) will be used.
static const int unspecified_input_ = 10
 input_type_ == unspecified_input_ This value is the "unset" state for the input_type_ instance variable.

Protected Member Functions

virtual int precompute ()
virtual int postcompute ()
void computeCost ()
void preCheckPartition ()
void setParameterList (Teuchos::ParameterList &zoltanParamList)

Protected Attributes

Teuchos::RCP< const
Epetra_BlockMap > 
input_map_
Teuchos::RCP< const
Epetra_CrsGraph > 
input_graph_
Teuchos::RCP< const
Epetra_RowMatrix > 
input_matrix_
Teuchos::RCP< const
Epetra_MultiVector > 
input_coords_
Teuchos::RCP
< Isorropia::Epetra::CostDescriber
costs_
Teuchos::RCP< const
Epetra_MultiVector > 
weights_

Private Attributes

Teuchos::ParameterList zoltanParamList_
std::string partMethod_
Zoltan * zz_
Teuchos::RCP
< ZoltanLib::QueryObject
queryObject_
int num_obj_

Constructor & Destructor Documentation

Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< CostDescriber costs,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< CostDescriber costs,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
Teuchos::RCP< const Epetra_MultiVector >  weights,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< CostDescriber costs,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< CostDescriber costs,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
Teuchos::RCP< const Epetra_MultiVector >  weights,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_MultiVector >  input_coords,
Teuchos::RCP< const Epetra_MultiVector >  weights,
int  inputType = unspecified_input_ 
)
Isorropia::Epetra::ZoltanLibClass::ZoltanLibClass ( Teuchos::RCP< const Epetra_BlockMap >  input_map,
int  inputType = unspecified_input_ 
)

Member Function Documentation

virtual int Isorropia::Epetra::ZoltanLibClass::repartition ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  newPartitions,
int &  exportsSize,
std::vector< int > &  imports 
) [virtual]

Method to partition the object that the ZoltanLibClass was contructed with.

Parameters:
[in]paramlistParameters to govern partitioning.
[out]newPartitionsThe new partition for each of my objects, in local ID order. The objects may be rows or non-zeroes (for CrsGraph and RowMatrix input) or coordinates (for MultiVector input). Partition numbers can range from zero to numProcs-1.
[out]exportsSizeThe number of my objects that will be exported to another process under the new partitioning. This is also the number of elements in newPartitions that are not equal to my process rank.
[out]importsA list of the global IDs of the objects that will be imported to my process under the new partitioning

Implements Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::color ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  colorAssignment 
) [virtual]

Method to color the object that the ZoltanLibClass was contructed with.

Parameters:
[in]paramlistParameters to govern coloring.
[out]colorAssignmentA list of integers indicating the coloring of the object, in local ID order.

Implements Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::order ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  orderAssignment 
) [virtual]

Method to order the object that the ZoltanLibClass was contructed with.

Parameters:
[in]paramlistParameters to govern ordering .
[out]orderAssignmentA list of integers indicating the ordering of the object, in local ID order.

Implements Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::precompute ( ) [protected, virtual]

Reimplemented from Isorropia::Epetra::Library.

virtual int Isorropia::Epetra::ZoltanLibClass::postcompute ( ) [protected, virtual]
void Isorropia::Epetra::ZoltanLibClass::computeCost ( ) [protected]
void Isorropia::Epetra::ZoltanLibClass::preCheckPartition ( ) [protected]
void Isorropia::Epetra::ZoltanLibClass::setParameterList ( Teuchos::ParameterList &  zoltanParamList) [protected]

Member Data Documentation

Teuchos::ParameterList Isorropia::Epetra::ZoltanLibClass::zoltanParamList_ [private]
const int Isorropia::Epetra::Library::hgraph_input_ = 1 [static, inherited]

input_type_ == hgraph_input_ This indicates that the matrix or graph represents a hypergraph.

Columns represent hyperedges, and row (vertex) partitioning is to be performed.

const int Isorropia::Epetra::Library::hgraph2d_finegrain_input_ = 2 [static, inherited]

input_type_ == hgraph2d_finegrain_input_ This indicates that the matrix or graph represents a hypergraph.

Columns represent hyperedges, and non-zeroes are to be partitioned.

const int Isorropia::Epetra::Library::graph_input_ = 3 [static, inherited]

input_type_ == graph_input_ This indicates that the square symmetric matrix or graph represents a graph in the sense that row/column IDs are vertices and non-zeroes represent edges.

The vertices are to be partitioned.

const int Isorropia::Epetra::Library::geometric_input_ = 4 [static, inherited]

input_type_ == geometric_input_ This indicates that the Epetra_MultiVector represents geometric coordinates.

The MultiVector should have 1, 2 or 3 vectors, representing 1, 2 or 3 dimensional coordinates. The coordinates are to be partitioned.

const int Isorropia::Epetra::Library::hgraph_graph_input_ = 5 [static, inherited]

input_type_ == hgraph_graph_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning with both hypergraph and graph methods.

const int Isorropia::Epetra::Library::hgraph_geometric_input_ = 6 [static, inherited]

input_type_ == hgraph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning with both hypergraph and geometric methods.

const int Isorropia::Epetra::Library::graph_geometric_input_ = 7 [static, inherited]

input_type_ == graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning with both graph and geometric methods.

input_type_ == hgraph_graph_geom_input_ This indicates that the Epetra_MultiVector represents a hypergraph and graph (see above).

This is necessary for hierarchical partitioning using hypergraph, graph, and geometric methods.

const int Isorropia::Epetra::Library::simple_input_ = 9 [static, inherited]

input_type_ == simple_input_ This is used to indicate that a simple partitiong method (block, cyclic, or random) will be used.

const int Isorropia::Epetra::Library::unspecified_input_ = 10 [static, inherited]

input_type_ == unspecified_input_ This value is the "unset" state for the input_type_ instance variable.

Teuchos::RCP<const Epetra_BlockMap> Isorropia::Epetra::Library::input_map_ [protected, inherited]
Teuchos::RCP<const Epetra_CrsGraph> Isorropia::Epetra::Library::input_graph_ [protected, inherited]
Teuchos::RCP<const Epetra_RowMatrix> Isorropia::Epetra::Library::input_matrix_ [protected, inherited]
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::input_coords_ [protected, inherited]
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::weights_ [protected, inherited]

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