#include <ml_RowMatrix.h>
Public Member Functions | |
int | SetOwnership (bool ownership) |
Sets ownership. | |
int | SetUseTranspose (bool UseTranspose) |
Sets use transpose (not implemented). | |
bool | UseTranspose () const |
Returns the current UseTranspose setting. | |
bool | HasNormInf () const |
Returns true if the this object can provide an approximate Inf-norm, false otherwise. | |
const Epetra_Comm & | Comm () const |
Returns a pointer to the Epetra_Comm communicator associated with this operator. | |
const Epetra_Map & | OperatorDomainMap () const |
Returns the Epetra_Map object associated with the domain of this operator. | |
const Epetra_Map & | OperatorRangeMap () const |
Returns the Epetra_Map object associated with the range of this operator. | |
void | SetLabel (const char *label) |
const char * | Label () const |
const Epetra_BlockMap & | Map () const |
Returns a reference to RowMatrix->Map(). | |
RowMatrix (ML_Operator *Op, const Epetra_Comm *Comm=0, const bool cheap=false, const USR_COMM=MPI_COMM_WORLD) | |
Constructor, constructs Comm object if not provided. | |
virtual | ~RowMatrix () |
Destructor. | |
virtual int | NumMyRowEntries (int MyRow, int &NumEntries) const |
Returns the number of nonzero entries in MyRow. | |
virtual int | MaxNumEntries () const |
Returns the maximum of NumMyRowEntries() over all rows. | |
virtual int | ExtractMyRowCopy (int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const |
Returns a copy of the specified local row in user-provided arrays. | |
virtual int | ExtractDiagonalCopy (Epetra_Vector &Diagonal) const |
Returns a copy of the main diagonal in a user-provided vector. | |
virtual int | Multiply (bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Returns the result of a Epetra_RowMatrix multiplied by a Epetra_MultiVector X in Y. | |
virtual int | Solve (bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Returns result of a local-only solve using a triangular Epetra_RowMatrix with Epetra_MultiVectors X and Y. | |
virtual int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
virtual int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
virtual int | InvRowSums (Epetra_Vector &x) const |
Computes the sum of absolute values of the rows of the Epetra_RowMatrix, results returned in x. | |
virtual int | LeftScale (const Epetra_Vector &x) |
Scales the Epetra_RowMatrix on the left with a Epetra_Vector x. | |
virtual int | InvColSums (Epetra_Vector &x) const |
Computes the sum of absolute values of the columns of the Epetra_RowMatrix, results returned in x. | |
virtual int | RightScale (const Epetra_Vector &x) |
Scales the Epetra_RowMatrix on the right with a Epetra_Vector x. | |
virtual bool | Filled () const |
If FillComplete() has been called, this query returns true, otherwise it returns false. | |
virtual double | NormInf () const |
Returns the infinity norm of the global matrix. | |
virtual double | NormOne () const |
Returns the one norm of the global matrix. | |
virtual int | NumGlobalNonzeros () const |
Returns the number of nonzero entries in the global matrix. | |
virtual int | NumGlobalRows () const |
Returns the number of global matrix rows. | |
virtual int | NumGlobalCols () const |
Returns the number of global matrix columns. | |
virtual int | NumGlobalDiagonals () const |
Returns the number of global nonzero diagonal entries, based on global row/column index comparisons. | |
virtual int | NumMyNonzeros () const |
Returns the number of nonzero entries in the calling processor's portion of the matrix. | |
virtual int | NumMyRows () const |
Returns the number of matrix rows owned by the calling processor. | |
virtual int | NumMyCols () const |
Returns the number of matrix columns owned by the calling processor. | |
virtual int | NumMyDiagonals () const |
Returns the number of local nonzero diagonal entries, based on global row/column index comparisons. | |
virtual bool | LowerTriangular () const |
If matrix is lower triangular in local index space, this query returns true, otherwise it returns false. | |
virtual bool | UpperTriangular () const |
If matrix is upper triangular in local index space, this query returns true, otherwise it returns false. | |
virtual const Epetra_Map & | RowMatrixRowMap () const |
Returns the Epetra_Map object associated with the rows of this matrix. | |
virtual const Epetra_Map & | RowMatrixColMap () const |
Returns the Epetra_Map object associated with the columns of this matrix. | |
virtual const Epetra_Import * | RowMatrixImporter () const |
Returns the Epetra_Import object that contains the import operations for distributed operations. | |
Private Attributes | |
ML_Operator * | Op_ |
Pointer to the ML_Operator structure that is wrapped. | |
const Epetra_Comm * | Comm_ |
Communicator object, given by the user or allocated here. | |
bool | FreeCommObject_ |
If true , the dtor will destroy the communicator. | |
int | NumMyRows_ |
Number of local rows. | |
int | NumGlobalRows_ |
Number of global rows. | |
int | NumMyCols_ |
Number of local columns. | |
int | NumGlobalCols_ |
Number of global columns.j. | |
Epetra_Map * | DomainMap_ |
Map for row distribution. | |
Epetra_Map * | RangeMap_ |
Map for row distribution. | |
Epetra_Map * | ColMap_ |
Map for column distribution. | |
int | MaxNumEntries_ |
Maximum number of elements in a row. | |
std::vector< double > | Diagonal_ |
Diagonal elements of the matrix. | |
std::vector< int > | NumMyRowEntries_ |
Contains the nonzero elements in a local row. | |
int | Allocated_ |
Work vector for getrow(). | |
std::vector< int > | Indices_ |
Work vector for getrow(). | |
std::vector< double > | Values_ |
Work vector for getrow(). | |
double | NormInf_ |
Contains the infinity norm of the matrix. | |
int | NumMyNonzeros_ |
Number of local nonzeros. | |
int | NumGlobalNonzeros_ |
Number of global nonzeros. | |
int | NumMyDiagonals_ |
Number of nonzero local diagonal elements. | |
int | NumGlobalDiagonals_ |
Number of nonzero global diagonal elements. | |
Epetra_Import * | Importer_ |
Importer. | |
char * | Label_ |
Label of this object. |
ML_Epetra::RowMatrix::RowMatrix | ( | ML_Operator * | Op, | |
const Epetra_Comm * | Comm = 0 , |
|||
const bool | cheap = false , |
|||
const | USR_COMM = MPI_COMM_WORLD | |||
) |
virtual ML_Epetra::RowMatrix::~RowMatrix | ( | ) | [virtual] |
virtual int ML_Epetra::RowMatrix::Apply | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [inline, virtual] |
virtual int ML_Epetra::RowMatrix::ApplyInverse | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [inline, virtual] |
const Epetra_Comm& ML_Epetra::RowMatrix::Comm | ( | ) | const [inline] |
virtual int ML_Epetra::RowMatrix::ExtractDiagonalCopy | ( | Epetra_Vector & | Diagonal | ) | const [virtual] |
Out | Diagonal - Extracted main diagonal. |
virtual int ML_Epetra::RowMatrix::ExtractMyRowCopy | ( | int | MyRow, | |
int | Length, | |||
int & | NumEntries, | |||
double * | Values, | |||
int * | Indices | |||
) | const [virtual] |
In | MyRow - Local row to extract. | |
In | Length - Length of Values and Indices. | |
Out | NumEntries - Number of nonzero entries extracted. | |
Out | Values - Extracted values for this row. | |
Out | Indices - Extracted global column indices for the corresponding values. |
virtual bool ML_Epetra::RowMatrix::Filled | ( | ) | const [inline, virtual] |
bool ML_Epetra::RowMatrix::HasNormInf | ( | ) | const [inline] |
virtual int ML_Epetra::RowMatrix::InvColSums | ( | Epetra_Vector & | x | ) | const [inline, virtual] |
The vector x will return such that x[j] will contain the inverse of sum of the absolute values of the this matrix will be sca such that A(i,j) = x(j)*A(i,j) where i denotes the global row number of A and j denotes the global column number of A. Using the resulting vector from this function as input to RighttScale() will make the one norm of the resulting matrix exactly 1.
Out | x -A Epetra_Vector containing the column sums of the this matrix. |
virtual int ML_Epetra::RowMatrix::InvRowSums | ( | Epetra_Vector & | x | ) | const [inline, virtual] |
The vector x will return such that x[i] will contain the inverse of sum of the absolute values of the this matrix will be scaled such that A(i,j) = x(i)*A(i,j) where i denotes the global row number of A and j denotes the global column number of A. Using the resulting vector from this function as input to LeftScale() will make the infinity norm of the resulting matrix exactly 1.
Out | x -A Epetra_Vector containing the row sums of the this matrix. |
const char* ML_Epetra::RowMatrix::Label | ( | ) | const [inline] |
virtual int ML_Epetra::RowMatrix::LeftScale | ( | const Epetra_Vector & | x | ) | [inline, virtual] |
The this matrix will be scaled such that A(i,j) = x(i)*A(i,j) where i denotes the row number of A and j denotes the column number of A.
In | x -A Epetra_Vector to solve for. |
virtual bool ML_Epetra::RowMatrix::LowerTriangular | ( | ) | const [virtual] |
const Epetra_BlockMap& ML_Epetra::RowMatrix::Map | ( | ) | const [inline] |
virtual int ML_Epetra::RowMatrix::MaxNumEntries | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::Multiply | ( | bool | TransA, | |
const Epetra_MultiVector & | X, | |||
Epetra_MultiVector & | Y | |||
) | const [virtual] |
In | TransA -If true, multiply by the transpose of matrix, otherwise just use matrix. | |
In | X - A Epetra_MultiVector of dimension NumVectors to multiply with matrix. | |
Out | Y -A Epetra_MultiVector of dimension NumVectorscontaining result. |
virtual double ML_Epetra::RowMatrix::NormInf | ( | ) | const [virtual] |
virtual double ML_Epetra::RowMatrix::NormOne | ( | ) | const [inline, virtual] |
virtual int ML_Epetra::RowMatrix::NumGlobalCols | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::NumGlobalDiagonals | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::NumGlobalNonzeros | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::NumGlobalRows | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::NumMyCols | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::NumMyDiagonals | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::NumMyNonzeros | ( | ) | const [virtual] |
virtual int ML_Epetra::RowMatrix::NumMyRowEntries | ( | int | MyRow, | |
int & | NumEntries | |||
) | const [virtual] |
In | MyRow - Local row. | |
Out | NumEntries - Number of nonzero values present. |
virtual int ML_Epetra::RowMatrix::NumMyRows | ( | ) | const [virtual] |
const Epetra_Map& ML_Epetra::RowMatrix::OperatorDomainMap | ( | ) | const [inline] |
const Epetra_Map& ML_Epetra::RowMatrix::OperatorRangeMap | ( | ) | const [inline] |
virtual int ML_Epetra::RowMatrix::RightScale | ( | const Epetra_Vector & | x | ) | [inline, virtual] |
The this matrix will be scaled such that A(i,j) = x(j)*A(i,j) where i denotes the global row number of A and j denotes the global column number of A.
In | x -The Epetra_Vector used for scaling this. |
virtual const Epetra_Map& ML_Epetra::RowMatrix::RowMatrixColMap | ( | ) | const [virtual] |
virtual const Epetra_Import* ML_Epetra::RowMatrix::RowMatrixImporter | ( | ) | const [virtual] |
virtual const Epetra_Map& ML_Epetra::RowMatrix::RowMatrixRowMap | ( | ) | const [virtual] |
void ML_Epetra::RowMatrix::SetLabel | ( | const char * | label | ) | [inline] |
int ML_Epetra::RowMatrix::SetOwnership | ( | bool | ownership | ) | [inline] |
int ML_Epetra::RowMatrix::SetUseTranspose | ( | bool | UseTranspose | ) | [inline] |
virtual int ML_Epetra::RowMatrix::Solve | ( | bool | Upper, | |
bool | Trans, | |||
bool | UnitDiagonal, | |||
const Epetra_MultiVector & | X, | |||
Epetra_MultiVector & | Y | |||
) | const [inline, virtual] |
This method will perform a triangular solve independently on each processor of the parallel machine. No communication is performed.
In | Upper -If true, solve Ux = y, otherwise solve Lx = y. | |
In | Trans -If true, solve transpose problem. | |
In | UnitDiagonal -If true, assume diagonal is unit (whether it's stored or not). | |
In | X - A Epetra_MultiVector of dimension NumVectors to solve for. | |
Out | Y -A Epetra_MultiVector of dimension NumVectors containing result. |
virtual bool ML_Epetra::RowMatrix::UpperTriangular | ( | ) | const [virtual] |
bool ML_Epetra::RowMatrix::UseTranspose | ( | ) | const [inline] |
int ML_Epetra::RowMatrix::Allocated_ [mutable, private] |
Epetra_Map* ML_Epetra::RowMatrix::ColMap_ [private] |
const Epetra_Comm* ML_Epetra::RowMatrix::Comm_ [private] |
std::vector<double> ML_Epetra::RowMatrix::Diagonal_ [private] |
Epetra_Map* ML_Epetra::RowMatrix::DomainMap_ [private] |
bool ML_Epetra::RowMatrix::FreeCommObject_ [private] |
Epetra_Import* ML_Epetra::RowMatrix::Importer_ [mutable, private] |
std::vector<int> ML_Epetra::RowMatrix::Indices_ [mutable, private] |
char* ML_Epetra::RowMatrix::Label_ [private] |
int ML_Epetra::RowMatrix::MaxNumEntries_ [private] |
double ML_Epetra::RowMatrix::NormInf_ [private] |
int ML_Epetra::RowMatrix::NumGlobalCols_ [private] |
int ML_Epetra::RowMatrix::NumGlobalDiagonals_ [private] |
int ML_Epetra::RowMatrix::NumGlobalNonzeros_ [private] |
int ML_Epetra::RowMatrix::NumGlobalRows_ [private] |
int ML_Epetra::RowMatrix::NumMyCols_ [private] |
int ML_Epetra::RowMatrix::NumMyDiagonals_ [private] |
int ML_Epetra::RowMatrix::NumMyNonzeros_ [private] |
std::vector<int> ML_Epetra::RowMatrix::NumMyRowEntries_ [private] |
int ML_Epetra::RowMatrix::NumMyRows_ [private] |
ML_Operator* ML_Epetra::RowMatrix::Op_ [private] |
Epetra_Map* ML_Epetra::RowMatrix::RangeMap_ [private] |
std::vector<double> ML_Epetra::RowMatrix::Values_ [mutable, private] |