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

An implementation of the Partitioner interface that operates on Epetra matrices and linear systems. More...

#include <Isorropia_EpetraLibrary.hpp>

Inheritance diagram for Isorropia::Epetra::Library:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 Library (Teuchos::RCP< const Epetra_CrsGraph > input_graph, int itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< const Epetra_MultiVector > input_coords, int itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_CrsGraph > input_graph, Teuchos::RCP< CostDescriber > costs, int itype=unspecified_input_)
 Library (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 itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, int itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< const Epetra_MultiVector > input_coords, int itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_RowMatrix > input_matrix, Teuchos::RCP< CostDescriber > costs, int itype=unspecified_input_)
 Library (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 itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_MultiVector > input_coords, int itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_MultiVector > input_coords, Teuchos::RCP< const Epetra_MultiVector > weights, int itype=unspecified_input_)
 Library (Teuchos::RCP< const Epetra_BlockMap > input_map, int itype=unspecified_input_)
virtual ~Library ()
virtual int repartition (Teuchos::ParameterList &paramlist, std::vector< int > &myNewElements, int &exportsSize, std::vector< int > &imports)=0
virtual int color (Teuchos::ParameterList &paramlist, std::vector< int > &colorAssignment)=0
virtual int order (Teuchos::ParameterList &paramlist, std::vector< int > &orderAssignment)=0

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 ()=0

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_

Detailed Description

An implementation of the Partitioner interface that operates on Epetra matrices and linear systems.


Constructor & Destructor Documentation

Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
Teuchos::RCP< CostDescriber costs,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( 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  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_RowMatrix >  input_matrix,
Teuchos::RCP< CostDescriber costs,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( 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  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_MultiVector >  input_coords,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_MultiVector >  input_coords,
Teuchos::RCP< const Epetra_MultiVector >  weights,
int  itype = unspecified_input_ 
)
Isorropia::Epetra::Library::Library ( Teuchos::RCP< const Epetra_BlockMap >  input_map,
int  itype = unspecified_input_ 
)
virtual Isorropia::Epetra::Library::~Library ( ) [virtual]

Member Function Documentation

virtual int Isorropia::Epetra::Library::repartition ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  myNewElements,
int &  exportsSize,
std::vector< int > &  imports 
) [pure virtual]
virtual int Isorropia::Epetra::Library::color ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  colorAssignment 
) [pure virtual]
virtual int Isorropia::Epetra::Library::order ( Teuchos::ParameterList &  paramlist,
std::vector< int > &  orderAssignment 
) [pure virtual]
virtual int Isorropia::Epetra::Library::precompute ( ) [protected, virtual]
virtual int Isorropia::Epetra::Library::postcompute ( ) [protected, pure virtual]

Member Data Documentation

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.

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.

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.

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.

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.

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.

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.

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

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]
Teuchos::RCP<const Epetra_CrsGraph> Isorropia::Epetra::Library::input_graph_ [protected]
Teuchos::RCP<const Epetra_RowMatrix> Isorropia::Epetra::Library::input_matrix_ [protected]
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::input_coords_ [protected]
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::weights_ [protected]

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