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_H
00031 #define IFPACK_GRAPH_H
00032 class Epetra_Comm;
00033
00035
00046 class Ifpack_Graph {
00047
00048 public:
00049
00051 virtual ~Ifpack_Graph() {};
00052
00054 virtual int NumMyRows() const = 0;
00055
00057 virtual int NumMyCols() const = 0;
00058
00060 virtual int NumGlobalRows() const = 0;
00061
00063 virtual int NumGlobalCols() const = 0;
00064
00066 virtual int MaxMyNumEntries() const = 0;
00067
00069 virtual int NumMyNonzeros() const = 0;
00070
00072 virtual bool Filled() const = 0;
00073
00075 virtual int GRID(int) const = 0;
00076
00078 virtual int GCID(int) const = 0;
00079
00081 virtual int LRID(int) const = 0;
00082
00084 virtual int LCID(int) const = 0;
00085
00087 virtual int ExtractMyRowCopy(int MyRow, int LenOfIndices,
00088 int &NumIndices, int *Indices) const = 0;
00089
00091 virtual const Epetra_Comm& Comm() const = 0;
00092
00094 virtual ostream& Print(std::ostream& os) const = 0;
00095
00096 };
00097
00098 inline ostream& operator<<(ostream& os, const Ifpack_Graph& obj)
00099 {
00100 return(obj.Print(os));
00101 }
00102
00103 #endif // iFPACK_GRAPH_H