Isorropia: Partitioning, Load Balancing and more
Classes | Functions
Isorropia Matching Methods

Here we describe the matching interface provided by Isorropia. More...

Classes

class  Isorropia::Epetra::Matcher
 An implementation of the Matcher interface that operates on Epetra matrices and Graphs. More...
 

Functions

 Isorropia::Epetra::Matcher::Matcher (const Epetra_CrsMatrix *, const Teuchos::ParameterList &paramlist=Teuchos::ParameterList("EmptyParameterList"))
 Constructor. More...
 
 Isorropia::Epetra::Matcher::Matcher (Teuchos::RCP< const Epetra_CrsMatrix >, const Teuchos::ParameterList &paramlist=Teuchos::ParameterList("EmptyParameterList"))
 Constructor. More...
 
 Isorropia::Epetra::Matcher::Matcher (const Epetra_CrsGraph *, const Teuchos::ParameterList &paramlist=Teuchos::ParameterList("EmptyParameterList"))
 Constructor. More...
 
 Isorropia::Epetra::Matcher::Matcher (Teuchos::RCP< const Epetra_CrsGraph >, const Teuchos::ParameterList &paramlist=Teuchos::ParameterList("EmptyParameterList"))
 Constructor. More...
 
virtual Isorropia::Epetra::Matcher::~Matcher ()
 Destructor. More...
 
void Isorropia::Epetra::Matcher::getMatchedColumnsForRowsCopy (int, int &, int *) const
 Copies the matched columns corresponding to each row in a user given array. More...
 
void Isorropia::Epetra::Matcher::getMatchedRowsForColumnsCopy (int, int &, int *) const
 Copies the matched rows corresponding to each column in a user given array. More...
 
Teuchos::RCP< Epetra_CrsMatrix > Isorropia::Epetra::Matcher::applyRowPermutation ()
 Applies the row permutation from matching and returns a new matrix. More...
 
Teuchos::RCP< Epetra_CrsMatrix > Isorropia::Epetra::Matcher::applyColumnPermutation ()
 Applies the column permutation from matching and returns a new matrix. More...
 
int Isorropia::Epetra::Matcher::match ()
 Provides the column map which is actually the complete column permutation. More...
 

Detailed Description

Here we describe the matching interface provided by Isorropia.

Matching

Isorropia currently supports maximum-cardinality matching, also known as maximum transversal. This may be used to permute a matrix to get a zero-free diagonal. This code uses shared-memory parallelism and requires OpenMP. An MPI version is planned for a future version.

Function Documentation

Isorropia::Epetra::Matcher::Matcher ( const Epetra_CrsMatrix *  ,
const Teuchos::ParameterList &  paramlist = Teuchos::ParameterList("EmptyParameterList") 
)

Constructor.

Parameters
[in]Epetra_CRSMatrix*compressed row matrix
[in]paramlistthis parameter list is used to select the algorithm. The input is a string. "PHK","PHKDW", "PDFS" and "PPF" for parallel Hopcroft-Karp, parallel Hopcroft-Karp with Duff-Wiberg , parallel DFS and parallel Pothen-Fan respectively. The default is the "PHKDW".
Isorropia::Epetra::Matcher::Matcher ( Teuchos::RCP< const Epetra_CrsMatrix >  ,
const Teuchos::ParameterList &  paramlist = Teuchos::ParameterList("EmptyParameterList") 
)

Constructor.

Parameters
[in]RCPof the CrsMatrix
[in]paramlistthis parameter list is used to select the algorithm. The input is a string. "PHK","PHKDW", "PDFS" and "PPF" for parallel Hopcroft-Karp, parallel Hopcroft-Karp with Duff-Wiberg , parallel DFS and parallel Pothen-Fan respectively. The default is the "PHKDW".
Isorropia::Epetra::Matcher::Matcher ( const Epetra_CrsGraph *  ,
const Teuchos::ParameterList &  paramlist = Teuchos::ParameterList("EmptyParameterList") 
)

Constructor.

Parameters
[in]Pointerto the Epetra_CrsGraph
[in]paramlistthis parameter list is used to select the algorithm. The input is a string. "PHK","PHKDW", "PDFS" and "PPF" for parallel Hopcroft-Karp, parallel Hopcroft-Karp with Duff-Wiberg , parallel DFS and parallel Pothen-Fan respectively. The default is the "PHKDW".
Isorropia::Epetra::Matcher::Matcher ( Teuchos::RCP< const Epetra_CrsGraph >  ,
const Teuchos::ParameterList &  paramlist = Teuchos::ParameterList("EmptyParameterList") 
)

Constructor.

Parameters
[in]RCPof the Epetra_CrsGraph
[in]paramlistthis parameter list is used to select the algorithm. The input is a string. "PHK","PHKDW", "PDFS" and "PPF" for parallel Hopcroft-Karp, parallel Hopcroft-Karp with Duff-Wiberg , parallel DFS and parallel Pothen-Fan respectively. The default is the "PHKDW".
virtual Isorropia::Epetra::Matcher::~Matcher ( )
virtual

Destructor.

void Isorropia::Epetra::Matcher::getMatchedColumnsForRowsCopy ( int  ,
int &  ,
int *   
) const

Copies the matched columns corresponding to each row in a user given array.

Parameters
[in]Thelength of the array provided by the user
[out]Theamount of data copied into the array
in/out]The user array
void Isorropia::Epetra::Matcher::getMatchedRowsForColumnsCopy ( int  ,
int &  ,
int *   
) const

Copies the matched rows corresponding to each column in a user given array.

Parameters
[in]Thelength of the array provided by the user
[out]Theamount of data copied into the array
in/out]The user array
Teuchos::RCP<Epetra_CrsMatrix> Isorropia::Epetra::Matcher::applyRowPermutation ( )

Applies the row permutation from matching and returns a new matrix.

Teuchos::RCP<Epetra_CrsMatrix> Isorropia::Epetra::Matcher::applyColumnPermutation ( )

Applies the column permutation from matching and returns a new matrix.

int Isorropia::Epetra::Matcher::match ( )

Provides the column map which is actually the complete column permutation.

Computes the maximum cardinality matching.