Here we describe the probing interface provided by Isorropia.
More...
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.
Isorropia::Epetra::Prober::Prober |
( |
Teuchos::RCP< const Epetra_CrsGraph > |
input_graph, |
|
|
const Teuchos::ParameterList & |
paramlist, |
|
|
bool |
compute_now = true |
|
) |
| |
Constructor.
- Parameters
-
[in] | input_graph | the graph whose sparsity pattern is to guide the probing. |
[in] | paramlist | this parameter list may be used to pass parameters to the colorer. |
[in] | compute_now | if 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_graph | the graph whose sparsity pattern is to guide the probing. |
[in] | paramlist | this parameter list may be used to pass parameters to the colorer. |
[in] | compute_now | if 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_matrix | the matrix whose sparsity pattern is to guide the probing. |
[in] | paramlist | this parameter list may be used to pass parameters to the colorer. |
[in] | compute_now | if 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_matrix | the matrix whose sparsity pattern is to guide the probing. |
[in] | paramlist | this parameter list may be used to pass parameters to the colorer. |
[in] | compute_now | if 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 |
( |
| ) |
|
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] | op | is the operator we are probing |
[in,out] | out_matrix | is the matrix |
Teuchos::RCP<Epetra_CrsMatrix> Isorropia::Epetra::Prober::probe |
( |
const Epetra_Operator & |
op | ) |
|
Perform the actual probing.
- Parameters
-
[in] | op | is the operator we are probing |
- Returns
- RCP to the matrix