Ifpack_ReorderFilter Class Reference

Ifpack_ReorderFilter: a class for light-weight reorder of local rows and columns of an Epetra_RowMatrix. More...

#include <Ifpack_ReorderFilter.h>

Inheritance diagram for Ifpack_ReorderFilter:

[legend]
List of all members.

Public Member Functions

 Ifpack_ReorderFilter (Epetra_RowMatrix *Matrix, Ifpack_Reordering *Reordering)
 Ifpack_ReorderFilter (const Ifpack_ReorderFilter &RHS)
 Copy constructor.
virtual ~Ifpack_ReorderFilter ()
 Destructor.
Ifpack_ReorderFilteroperator= (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 &X, Epetra_MultiVector &Y) const
 Applies the inverse of this operator (not implemented).
virtual int InvRowSums (Epetra_Vector &x) const
 Inverse of row sums (not implemented).
virtual int LeftScale (const Epetra_Vector &x)
 Left scale of the matrix (not implemented).
virtual int InvColSums (Epetra_Vector &x) const
 Inverse of column sums (not implemented).
virtual int RightScale (const Epetra_Vector &x)
 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 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_MapRowMatrixRowMap () const
 Returns the row matrix of the non-reordered matrix.
virtual const Epetra_MapRowMatrixColMap () const
 Returns the column matrix of the non-reordered matrix.
virtual const Epetra_ImportRowMatrixImporter () const
 Returns the importer of the non-reordered matrix.
int SetUseTranspose (bool UseTranspose)
 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_CommComm () const
 Returns the communicator.
const Epetra_MapOperatorDomainMap () const
 Returns the operator domain map of the non-reordered matrix.
const Epetra_MapOperatorRangeMap () const
 Returns the operator domain range of the non-reordered matrix.
const Epetra_BlockMapMap () const
 Returns the map of the non-reordered matrix.
const char * Label () const
 Returns the label of this object.
Epetra_RowMatrixMatrix () const
 Returns a reference to the internally stored pointer to Epetra_RowMatrix.
Ifpack_ReorderingReordering () const
 Returns a reference to the internally stored pointer to Ifpack_Reordering..

Private Attributes

Epetra_RowMatrixA_
 Pointer to the matrix to be preconditioned.
Ifpack_ReorderingReordering_
 Pointer to the reordering to be used (already constructed).
int NumMyRows_
 Number of local rows of A_.
int MaxNumEntries_
 Maximum number of entries in A_.
char Label_ [80]
 Label for this object.

Detailed Description

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).

Author:
Marzio Sala, SNL 9214.
Date:
Last modified: Oct-04.

Definition at line 37 of file Ifpack_ReorderFilter.h.


Constructor & Destructor Documentation

Ifpack_ReorderFilter::Ifpack_ReorderFilter Epetra_RowMatrix Matrix,
Ifpack_Reordering Reordering
 

Definition at line 12 of file Ifpack_ReorderFilter.cpp.

Ifpack_ReorderFilter::Ifpack_ReorderFilter const Ifpack_ReorderFilter RHS  ) 
 

Copy constructor.

Definition at line 22 of file Ifpack_ReorderFilter.cpp.

Ifpack_ReorderFilter::~Ifpack_ReorderFilter  )  [virtual]
 

Destructor.

Definition at line 32 of file Ifpack_ReorderFilter.cpp.


Member Function Documentation

Ifpack_ReorderFilter & Ifpack_ReorderFilter::operator= const Ifpack_ReorderFilter RHS  ) 
 

Operator assignment.

Definition at line 38 of file Ifpack_ReorderFilter.cpp.

virtual int Ifpack_ReorderFilter::NumMyRowEntries int  MyRow,
int &  NumEntries
const [inline, virtual]
 

Returns the number of local row entries.

Implements Epetra_RowMatrix.

Definition at line 54 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::MaxNumEntries  )  const [inline, virtual]
 

Returns maximum num entries.

Implements Epetra_RowMatrix.

Definition at line 60 of file Ifpack_ReorderFilter.h.

int Ifpack_ReorderFilter::ExtractMyRowCopy int  MyRow,
int  Length,
int &  NumEntries,
double *  Values,
int *  Indices
const [virtual]
 

Implements Epetra_RowMatrix.

Definition at line 55 of file Ifpack_ReorderFilter.cpp.

int Ifpack_ReorderFilter::ExtractDiagonalCopy Epetra_Vector Diagonal  )  const [virtual]
 

Extracts a copy of the diagonal of the reordered matrix.

Implements Epetra_RowMatrix.

Definition at line 74 of file Ifpack_ReorderFilter.cpp.

int Ifpack_ReorderFilter::Multiply bool  TransA,
const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

Multiplies multi-vector X with the reordered matrix, returns result in Y.

Implements Epetra_RowMatrix.

Definition at line 84 of file Ifpack_ReorderFilter.cpp.

int Ifpack_ReorderFilter::Solve bool  Upper,
bool  Trans,
bool  UnitDiagonal,
const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

Solve, not implemented.

Implements Epetra_RowMatrix.

Definition at line 103 of file Ifpack_ReorderFilter.cpp.

int Ifpack_ReorderFilter::Apply const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

Applies the reordered matrix to multi-vector X, returns the result in Y.

Implements Epetra_Operator.

Definition at line 111 of file Ifpack_ReorderFilter.cpp.

virtual int Ifpack_ReorderFilter::ApplyInverse const Epetra_MultiVector X,
Epetra_MultiVector Y
const [inline, virtual]
 

Applies the inverse of this operator (not implemented).

Implements Epetra_Operator.

Definition at line 85 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::InvRowSums Epetra_Vector x  )  const [inline, virtual]
 

Inverse of row sums (not implemented).

Implements Epetra_RowMatrix.

Definition at line 92 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::LeftScale const Epetra_Vector x  )  [inline, virtual]
 

Left scale of the matrix (not implemented).

Implements Epetra_RowMatrix.

Definition at line 98 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::InvColSums Epetra_Vector x  )  const [inline, virtual]
 

Inverse of column sums (not implemented).

Implements Epetra_RowMatrix.

Definition at line 104 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::RightScale const Epetra_Vector x  )  [inline, virtual]
 

Right scale of the matrix (not implemented).

Implements Epetra_RowMatrix.

Definition at line 110 of file Ifpack_ReorderFilter.h.

virtual bool Ifpack_ReorderFilter::Filled  )  const [inline, virtual]
 

Returns true is the matrix called FillComplete().

Implements Epetra_RowMatrix.

Definition at line 116 of file Ifpack_ReorderFilter.h.

virtual double Ifpack_ReorderFilter::NormInf  )  const [inline, virtual]
 

Returns the infinite-norm.

Implements Epetra_RowMatrix.

Definition at line 122 of file Ifpack_ReorderFilter.h.

virtual double Ifpack_ReorderFilter::NormOne  )  const [inline, virtual]
 

Returns the 1-norm.

Implements Epetra_RowMatrix.

Definition at line 128 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumGlobalNonzeros  )  const [inline, virtual]
 

Returns the number of global nonzero elements.

Implements Epetra_RowMatrix.

Definition at line 134 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumGlobalRows  )  const [inline, virtual]
 

Returns the number of global rows.

Implements Epetra_RowMatrix.

Definition at line 140 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumGlobalCols  )  const [inline, virtual]
 

Returns the number of global columns.

Implements Epetra_RowMatrix.

Definition at line 146 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumGlobalDiagonals  )  const [inline, virtual]
 

Returns the number of global diagonals.

Implements Epetra_RowMatrix.

Definition at line 152 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumMyNonzeros  )  const [inline, virtual]
 

Returns the number of local nonzero elements.

Implements Epetra_RowMatrix.

Definition at line 158 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumMyRows  )  const [inline, virtual]
 

Returns the number of local rows.

Implements Epetra_RowMatrix.

Definition at line 164 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumMyCols  )  const [inline, virtual]
 

Returns the number of local columns.

Implements Epetra_RowMatrix.

Definition at line 170 of file Ifpack_ReorderFilter.h.

virtual int Ifpack_ReorderFilter::NumMyDiagonals  )  const [inline, virtual]
 

Returns the number of local diagonals.

Implements Epetra_RowMatrix.

Definition at line 176 of file Ifpack_ReorderFilter.h.

virtual bool Ifpack_ReorderFilter::LowerTriangular  )  const [inline, virtual]
 

Returns true is the reordered matrix is lower triangular.

Implements Epetra_RowMatrix.

Definition at line 182 of file Ifpack_ReorderFilter.h.

virtual bool Ifpack_ReorderFilter::UpperTriangular  )  const [inline, virtual]
 

Returns true is the reordered matrix is upper triangular.

Implements Epetra_RowMatrix.

Definition at line 188 of file Ifpack_ReorderFilter.h.

virtual const Epetra_Map& Ifpack_ReorderFilter::RowMatrixRowMap  )  const [inline, virtual]
 

Returns the row matrix of the non-reordered matrix.

Implements Epetra_RowMatrix.

Definition at line 194 of file Ifpack_ReorderFilter.h.

virtual const Epetra_Map& Ifpack_ReorderFilter::RowMatrixColMap  )  const [inline, virtual]
 

Returns the column matrix of the non-reordered matrix.

Implements Epetra_RowMatrix.

Definition at line 200 of file Ifpack_ReorderFilter.h.

virtual const Epetra_Import* Ifpack_ReorderFilter::RowMatrixImporter  )  const [inline, virtual]
 

Returns the importer of the non-reordered matrix.

Implements Epetra_RowMatrix.

Definition at line 206 of file Ifpack_ReorderFilter.h.

int Ifpack_ReorderFilter::SetUseTranspose bool  UseTranspose  )  [inline, virtual]
 

Sets the use of the transpose.

Implements Epetra_Operator.

Definition at line 212 of file Ifpack_ReorderFilter.h.

bool Ifpack_ReorderFilter::UseTranspose  )  const [inline, virtual]
 

Returns true if the transpose of this matrix is used.

Implements Epetra_Operator.

Definition at line 218 of file Ifpack_ReorderFilter.h.

bool Ifpack_ReorderFilter::HasNormInf  )  const [inline, virtual]
 

Returns true if this matrix has the infinite norm.

Implements Epetra_Operator.

Definition at line 224 of file Ifpack_ReorderFilter.h.

const Epetra_Comm& Ifpack_ReorderFilter::Comm  )  const [inline, virtual]
 

Returns the communicator.

Implements Epetra_Operator.

Definition at line 230 of file Ifpack_ReorderFilter.h.

const Epetra_Map& Ifpack_ReorderFilter::OperatorDomainMap  )  const [inline, virtual]
 

Returns the operator domain map of the non-reordered matrix.

Implements Epetra_Operator.

Definition at line 236 of file Ifpack_ReorderFilter.h.

const Epetra_Map& Ifpack_ReorderFilter::OperatorRangeMap  )  const [inline, virtual]
 

Returns the operator domain range of the non-reordered matrix.

Implements Epetra_Operator.

Definition at line 242 of file Ifpack_ReorderFilter.h.

const Epetra_BlockMap& Ifpack_ReorderFilter::Map  )  const [inline, virtual]
 

Returns the map of the non-reordered matrix.

Implements Epetra_SrcDistObject.

Definition at line 248 of file Ifpack_ReorderFilter.h.

const char* Ifpack_ReorderFilter::Label  )  const [inline, virtual]
 

Returns the label of this object.

Implements Epetra_Operator.

Definition at line 254 of file Ifpack_ReorderFilter.h.

Epetra_RowMatrix& Ifpack_ReorderFilter::Matrix  )  const [inline]
 

Returns a reference to the internally stored pointer to Epetra_RowMatrix.

Definition at line 259 of file Ifpack_ReorderFilter.h.

Ifpack_Reordering& Ifpack_ReorderFilter::Reordering  )  const [inline]
 

Returns a reference to the internally stored pointer to Ifpack_Reordering..

Definition at line 264 of file Ifpack_ReorderFilter.h.


Member Data Documentation

Epetra_RowMatrix* Ifpack_ReorderFilter::A_ [private]
 

Pointer to the matrix to be preconditioned.

Definition at line 271 of file Ifpack_ReorderFilter.h.

Ifpack_Reordering* Ifpack_ReorderFilter::Reordering_ [private]
 

Pointer to the reordering to be used (already constructed).

Definition at line 273 of file Ifpack_ReorderFilter.h.

int Ifpack_ReorderFilter::NumMyRows_ [private]
 

Number of local rows of A_.

Definition at line 276 of file Ifpack_ReorderFilter.h.

int Ifpack_ReorderFilter::MaxNumEntries_ [private]
 

Maximum number of entries in A_.

Definition at line 278 of file Ifpack_ReorderFilter.h.

char Ifpack_ReorderFilter::Label_[80] [private]
 

Label for this object.

Definition at line 280 of file Ifpack_ReorderFilter.h.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:37:31 2008 for Ifpack Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1