00001 #ifndef IFPACK_GRAPH_H
00002 #define IFPACK_GRAPH_H
00003 class Epetra_Comm;
00004
00006
00017 class Ifpack_Graph {
00018
00019 public:
00020
00022 virtual ~Ifpack_Graph() {};
00023
00025 virtual int NumMyRows() const = 0;
00026
00028 virtual int NumMyCols() const = 0;
00029
00031 virtual int NumGlobalRows() const = 0;
00032
00034 virtual int NumGlobalCols() const = 0;
00035
00037 virtual int MaxMyNumEntries() const = 0;
00038
00040 virtual int NumMyNonzeros() const = 0;
00041
00043 virtual bool Filled() const = 0;
00044
00046 virtual int GRID(int) const = 0;
00047
00049 virtual int GCID(int) const = 0;
00050
00052 virtual int LRID(int) const = 0;
00053
00055 virtual int LCID(int) const = 0;
00056
00058 virtual int ExtractMyRowCopy(int MyRow, int LenOfIndices,
00059 int &NumIndices, int *Indices) const = 0;
00060
00062 virtual const Epetra_Comm& Comm() const = 0;
00063
00065 virtual ostream& Print(std::ostream& os) const = 0;
00066
00067 };
00068
00069 inline ostream& operator<<(ostream& os, const Ifpack_Graph& obj)
00070 {
00071 return(obj.Print(os));
00072 }
00073
00074 #endif // iFPACK_GRAPH_H