Isorropia: Partitioning, Load Balancing and more
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Isorropia::Epetra::Library Class Referenceabstract

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]

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. More...
 
static const int hgraph2d_finegrain_input_ = 2
 input_type_ == hgraph2d_finegrain_input_ This indicates that the matrix or graph represents a hypergraph. More...
 
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. More...
 
static const int geometric_input_ = 4
 input_type_ == geometric_input_ This indicates that the Epetra_MultiVector represents geometric coordinates. More...
 
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). More...
 
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). More...
 
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). More...
 
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). More...
 
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. More...
 
static const int unspecified_input_ = 10
 input_type_ == unspecified_input_ This value is the "unset" state for the input_type_ instance variable. More...
 

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 ( )
protectedvirtual
virtual int Isorropia::Epetra::Library::postcompute ( )
protectedpure virtual

Member Data Documentation

const int Isorropia::Epetra::Library::hgraph_input_ = 1
static

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

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

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

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

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

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

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.

const int Isorropia::Epetra::Library::hgraph_graph_geometric_input_ = 8
static

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

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

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

int Isorropia::Epetra::Library::input_type_
int Isorropia::Epetra::Library::numPartSizes
int* Isorropia::Epetra::Library::partGIDs
float* Isorropia::Epetra::Library::partSizes
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<Isorropia::Epetra::CostDescriber> Isorropia::Epetra::Library::costs_
protected
Teuchos::RCP<const Epetra_MultiVector> Isorropia::Epetra::Library::weights_
protected

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