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

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

Classes

class  Isorropia::Epetra::Prober
 An implementation of the Prober interface that operates on Epetra matrices and linear systems. More...

Functions

 Isorropia::Epetra::Prober::Prober (Teuchos::RCP< const Epetra_CrsGraph > input_graph, const Teuchos::ParameterList &paramlist, bool compute_now=true)
 Constructor.
 Isorropia::Epetra::Prober::Prober (const Epetra_CrsGraph *input_graph, const Teuchos::ParameterList &paramlist, bool compute_now=true)
 Constructor.
 Isorropia::Epetra::Prober::Prober (Teuchos::RCP< const Epetra_CrsMatrix > input_matrix, const Teuchos::ParameterList &paramlist, bool compute_now=true)
 Constructor.
 Isorropia::Epetra::Prober::Prober (const Epetra_CrsMatrix *input_matrix, const Teuchos::ParameterList &paramlist, bool compute_now=true)
 Constructor.
void Isorropia::Epetra::Prober::color ()
 Compute the coloring.
int Isorropia::Epetra::Prober::getNumOrthogonalVectors ()
 Get the number of orthogonal vectors (or the number of colors from coloring)
int Isorropia::Epetra::Prober::probe (const Epetra_Operator &op, Epetra_CrsMatrix &out_matrix)
 Perform the actual probing.
Teuchos::RCP< Epetra_CrsMatrix > Isorropia::Epetra::Prober::probe (const Epetra_Operator &op)
 Perform the actual probing.

Detailed Description

Here we describe the probing interface provided by Isorropia.

Probing

Isorropia's distance-2 graph vertex capability enables matrix probing, the re-construction (or approximation) of a matrix from matrix-vector products with specially chosen vectors. These vectors are combinations of columns of the identity which are carefully chosen such that the columns probed by such a vector are structurally orthogonal. The most common use case of probing is when the matrix is not explicitly stored, but the matrix entries are necessary for some other procedure (e.g. preconditioning). In certain applications, an exact reconstruction of the matrix is needed. In others, an approximation based on a priori knowledge of the "significant" matrix entries suffices. Isorropia's probing functionality works in both cases.

Currently, Isorropia's probing functionality is limited to structurally symmetric matrices but we expect to support nonsymmetric matrices (e.g. Jacobians) in the future.


Function Documentation

Isorropia::Epetra::Prober::Prober ( Teuchos::RCP< const Epetra_CrsGraph >  input_graph,
const Teuchos::ParameterList &  paramlist,
bool  compute_now = true 
)

Constructor.

Parameters:
[in]input_graphthe graph whose sparsity pattern is to guide the probing.
[in]paramlistthis parameter list may be used to pass parameters to the colorer.
[in]compute_nowif true, the coloring is computed in the constructor, otherwise call Isorropia::Epetra::Prober::color when you want to compute the coloring, defaults to false
Isorropia::Epetra::Prober::Prober ( const Epetra_CrsGraph *  input_graph,
const Teuchos::ParameterList &  paramlist,
bool  compute_now = true 
)

Constructor.

Parameters:
[in]input_graphthe graph whose sparsity pattern is to guide the probing.
[in]paramlistthis parameter list may be used to pass parameters to the colorer.
[in]compute_nowif true, the coloring is computed in the constructor, otherwise call Isorropia::Epetra::Prober::color when you want to compute the coloring, defaults to false
Isorropia::Epetra::Prober::Prober ( Teuchos::RCP< const Epetra_CrsMatrix >  input_matrix,
const Teuchos::ParameterList &  paramlist,
bool  compute_now = true 
)

Constructor.

Parameters:
[in]input_matrixthe matrix whose sparsity pattern is to guide the probing.
[in]paramlistthis parameter list may be used to pass parameters to the colorer.
[in]compute_nowif true, the coloring is computed in the constructor, otherwise call Isorropia::Epetra::Prober::color when you want to compute the coloring, defaults to true
Isorropia::Epetra::Prober::Prober ( const Epetra_CrsMatrix *  input_matrix,
const Teuchos::ParameterList &  paramlist,
bool  compute_now = true 
)

Constructor.

Parameters:
[in]input_matrixthe matrix whose sparsity pattern is to guide the probing.
[in]paramlistthis parameter list may be used to pass parameters to the colorer.
[in]compute_nowif true, the coloring is computed in the constructor, otherwise call Isorropia::Epetra::Prober::color when you want to compute the coloring, defaults to true
void Isorropia::Epetra::Prober::color ( )

Compute the coloring.

int Isorropia::Epetra::Prober::getNumOrthogonalVectors ( )

Get the number of orthogonal vectors (or the number of colors from coloring)

Returns:
number of orthogonal vectors
int Isorropia::Epetra::Prober::probe ( const Epetra_Operator &  op,
Epetra_CrsMatrix &  out_matrix 
)

Perform the actual probing.

Parameters:
[in]opis the operator we are probing
[in,out]out_matrixis the matrix
Teuchos::RCP<Epetra_CrsMatrix> Isorropia::Epetra::Prober::probe ( const Epetra_Operator &  op)

Perform the actual probing.

Parameters:
[in]opis the operator we are probing
Returns:
RCP to the matrix