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
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #ifndef IFPACK_GRAPH_H
00044 #define IFPACK_GRAPH_H
00045 class Epetra_Comm;
00046
00048
00059 #include "Epetra_ConfigDefs.h"
00060
00061 class Ifpack_Graph {
00062
00063 public:
00064
00066 virtual ~Ifpack_Graph() {};
00067
00069 virtual int NumMyRows() const = 0;
00070
00072 virtual int NumMyCols() const = 0;
00073
00074 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
00075
00076 virtual int NumGlobalRows() const = 0;
00077
00079 virtual int NumGlobalCols() const = 0;
00080 #endif
00081
00082 virtual long long NumGlobalRows64() const = 0;
00083
00084 virtual long long NumGlobalCols64() const = 0;
00085
00087 virtual int MaxMyNumEntries() const = 0;
00088
00090 virtual int NumMyNonzeros() const = 0;
00091
00093 virtual bool Filled() const = 0;
00094
00095 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
00096
00097 virtual int GRID(int) const = 0;
00098
00100 virtual int GCID(int) const = 0;
00101 #endif
00102
00103 virtual long long GRID64(int) const = 0;
00104
00106 virtual long long GCID64(int) const = 0;
00107
00108 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
00109
00110 virtual int LRID(int) const = 0;
00111
00113 virtual int LCID(int) const = 0;
00114 #endif
00115
00116 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
00117
00118 virtual int LRID(long long) const = 0;
00119
00121 virtual int LCID(long long) const = 0;
00122 #endif
00123
00125 virtual int ExtractMyRowCopy(int MyRow, int LenOfIndices,
00126 int &NumIndices, int *Indices) const = 0;
00127
00129 virtual const Epetra_Comm& Comm() const = 0;
00130
00132 virtual ostream& Print(std::ostream& os) const = 0;
00133
00134 };
00135
00136 inline ostream& operator<<(ostream& os, const Ifpack_Graph& obj)
00137 {
00138 return(obj.Print(os));
00139 }
00140
00141 #endif // iFPACK_GRAPH_H