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_EPETRA_CRSGRAPH_H
00031 #define IFPACK_EPETRA_CRSGRAPH_H
00032 #include "Ifpack_ConfigDefs.h"
00033 #include "Ifpack_Graph.h"
00034 #include "Teuchos_RefCountPtr.hpp"
00035
00036 class Epetra_Comm;
00037 class Epetra_CrsGraph;
00038
00040
00048 class Ifpack_Graph_Epetra_CrsGraph : public Ifpack_Graph {
00049
00050 public:
00051
00053 Ifpack_Graph_Epetra_CrsGraph(const Teuchos::RefCountPtr<const Epetra_CrsGraph>& CrsGraph);
00054
00056 virtual ~Ifpack_Graph_Epetra_CrsGraph() {};
00057
00059 int NumMyRows() const
00060 {
00061 return(NumMyRows_);
00062 }
00063
00065 int NumMyCols() const
00066 {
00067 return(NumMyCols_);
00068 }
00069
00071 int NumGlobalRows() const
00072 {
00073 return(NumGlobalRows_);
00074 }
00075
00077 int NumGlobalCols() const
00078 {
00079 return(NumGlobalCols_);
00080 }
00081
00083 int MaxMyNumEntries() const
00084 {
00085 return(MaxNumIndices_);
00086 }
00087
00089 int NumMyNonzeros() const;
00090
00092 bool Filled() const;
00093
00095 int GRID(int) const;
00096
00098 int GCID(int) const;
00099
00101 int LRID(int) const;
00102
00104 int LCID(int) const;
00105
00107 int ExtractMyRowCopy(int GlobalRow, int LenOfIndices,
00108 int &NumIndices, int *Indices) const;
00109
00111 const Epetra_Comm& Comm() const;
00112
00114 virtual ostream& Print(std::ostream& os) const;
00115
00116 private:
00117
00119 int NumMyRows_;
00121 int NumMyCols_;
00123 int NumGlobalRows_;
00125 int NumGlobalCols_;
00127 int MaxNumIndices_;
00129 Teuchos::RefCountPtr<const Epetra_CrsGraph> CrsGraph_;
00130 };
00131
00132 #endif