00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef IFPACK_GRAPH_EPETRA_ROWMATRIX_H
00031 #define IFPACK_GRAPH_EPETRA_ROWMATRIX_H
00032
00033 #include "Ifpack_ConfigDefs.h"
00034 #include "Ifpack_Graph.h"
00035 #include "Teuchos_RefCountPtr.hpp"
00036
00037 class Epetra_Comm;
00038 class Epetra_RowMatrix;
00039
00041
00051 class Ifpack_Graph_Epetra_RowMatrix : public Ifpack_Graph {
00052
00053 public:
00054
00056 Ifpack_Graph_Epetra_RowMatrix(const Teuchos::RefCountPtr<const Epetra_RowMatrix>& RowMatrix);
00057
00059 virtual ~Ifpack_Graph_Epetra_RowMatrix() {};
00060
00062 int NumMyRows() const
00063 {
00064 return(NumMyRows_);
00065 }
00066
00068 int NumMyCols() const
00069 {
00070 return(NumMyCols_);
00071 }
00072
00074 int NumGlobalRows() const
00075 {
00076 return(NumGlobalRows_);
00077 }
00078
00080 int NumGlobalCols() const
00081 {
00082 return(NumGlobalCols_);
00083 }
00084
00086 int MaxMyNumEntries() const
00087 {
00088 return(MaxNumIndices_);
00089 }
00090
00092 int NumMyNonzeros() const;
00093
00095 bool Filled() const;
00096
00098 int GRID(int) const;
00099
00101 int GCID(int) const;
00102
00104 int LRID(int) const;
00105
00107 int LCID(int) const;
00108
00110 int ExtractMyRowCopy(int GlobalRow, int LenOfIndices,
00111 int &NumIndices, int *Indices) const;
00112
00114 const Epetra_Comm& Comm() const;
00115
00117 ostream& Print(std::ostream& os) const;
00118
00119 private:
00120
00122 int NumMyRows_;
00124 int NumMyCols_;
00126 int NumGlobalRows_;
00128 int NumGlobalCols_;
00130 int MaxNumIndices_;
00132 Teuchos::RefCountPtr<const Epetra_RowMatrix> RowMatrix_;
00134 mutable std::vector<double> Values_;
00135 };
00136
00137 #endif