Ifpack_ReorderFilter: a class for light-weight reorder of local rows and columns of an Epetra_RowMatrix. More...
#include <Ifpack_ReorderFilter.h>
Public Member Functions | |
Ifpack_ReorderFilter (const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix_in, const Teuchos::RefCountPtr< Ifpack_Reordering > &Reordering_in) | |
Ifpack_ReorderFilter (const Ifpack_ReorderFilter &RHS) | |
Copy constructor. | |
virtual | ~Ifpack_ReorderFilter () |
Destructor. | |
Ifpack_ReorderFilter & | operator= (const Ifpack_ReorderFilter &RHS) |
Operator assignment. | |
virtual int | NumMyRowEntries (int MyRow, int &NumEntries) const |
Returns the number of local row entries. | |
virtual int | MaxNumEntries () const |
Returns maximum num entries. | |
virtual int | ExtractMyRowCopy (int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const |
virtual int | ExtractDiagonalCopy (Epetra_Vector &Diagonal) const |
Extracts a copy of the diagonal of the reordered matrix. | |
virtual int | Multiply (bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Multiplies multi-vector X with the reordered matrix, returns result in Y. | |
virtual int | Solve (bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Solve, not implemented. | |
virtual int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Applies the reordered matrix to multi-vector X, returns the result in Y. | |
virtual int | ApplyInverse (const Epetra_MultiVector &, Epetra_MultiVector &) const |
Applies the inverse of this operator (not implemented). | |
virtual int | InvRowSums (Epetra_Vector &) const |
Inverse of row sums (not implemented). | |
virtual int | LeftScale (const Epetra_Vector &) |
Left scale of the matrix (not implemented). | |
virtual int | InvColSums (Epetra_Vector &) const |
Inverse of column sums (not implemented). | |
virtual int | RightScale (const Epetra_Vector &) |
Right scale of the matrix (not implemented). | |
virtual bool | Filled () const |
Returns true is the matrix called FillComplete(). | |
virtual double | NormInf () const |
Returns the infinite-norm. | |
virtual double | NormOne () const |
Returns the 1-norm. | |
virtual int | NumGlobalNonzeros () const |
Returns the number of global nonzero elements. | |
virtual int | NumGlobalRows () const |
Returns the number of global rows. | |
virtual int | NumGlobalCols () const |
Returns the number of global columns. | |
virtual int | NumGlobalDiagonals () const |
Returns the number of global diagonals. | |
virtual long long | NumGlobalNonzeros64 () const |
Returns the number of global nonzero elements. | |
virtual long long | NumGlobalRows64 () const |
Returns the number of global rows. | |
virtual long long | NumGlobalCols64 () const |
Returns the number of global columns. | |
virtual long long | NumGlobalDiagonals64 () const |
Returns the number of global diagonals. | |
virtual int | NumMyNonzeros () const |
Returns the number of local nonzero elements. | |
virtual int | NumMyRows () const |
Returns the number of local rows. | |
virtual int | NumMyCols () const |
Returns the number of local columns. | |
virtual int | NumMyDiagonals () const |
Returns the number of local diagonals. | |
virtual bool | LowerTriangular () const |
Returns true is the reordered matrix is lower triangular. | |
virtual bool | UpperTriangular () const |
Returns true is the reordered matrix is upper triangular. | |
virtual const Epetra_Map & | RowMatrixRowMap () const |
Returns the row matrix of the non-reordered matrix. | |
virtual const Epetra_Map & | RowMatrixColMap () const |
Returns the column matrix of the non-reordered matrix. | |
virtual const Epetra_Import * | RowMatrixImporter () const |
Returns the importer of the non-reordered matrix. | |
int | SetUseTranspose (bool UseTranspose_in) |
Sets the use of the transpose. | |
bool | UseTranspose () const |
Returns true if the transpose of this matrix is used. | |
bool | HasNormInf () const |
Returns true if this matrix has the infinite norm. | |
const Epetra_Comm & | Comm () const |
Returns the communicator. | |
const Epetra_Map & | OperatorDomainMap () const |
Returns the operator domain map of the non-reordered matrix. | |
const Epetra_Map & | OperatorRangeMap () const |
Returns the operator domain range of the non-reordered matrix. | |
const Epetra_BlockMap & | Map () const |
Returns the map of the non-reordered matrix. | |
const char * | Label () const |
Returns the label of this object. | |
Teuchos::RefCountPtr < Epetra_RowMatrix > | Matrix () const |
Returns a reference-counted pointer to the internally stored pointer to Epetra_RowMatrix. | |
Teuchos::RefCountPtr < Ifpack_Reordering > | Reordering () const |
Returns a reference-counted pointer to the internally stored pointer to Ifpack_Reordering.. | |
Ifpack_ReorderFilter: a class for light-weight reorder of local rows and columns of an Epetra_RowMatrix.
Class Ifpack_ReorderFilter enables a light-weight construction of reordered matrices.
This class is used in Ifpack_AdditiveSchwarz to reorder (if required by the user) the localized matrix. As the localized matrix is defined on a serial communicator only, all maps are trivial (as all elements reside on the same process). This class does not attemp to define properly reordered maps, hence it should not be used for distributed matrices.
To improve the performances of Ifpack_AdditiveSchwarz, some operations are not performed in the construction phase (like for instance the computation of the 1-norm and infinite-norm, of check whether the reordered matrix is lower/upper triangular or not).
Definition at line 87 of file Ifpack_ReorderFilter.h.