#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] |