Ifpack Package Browser (Single Doxygen Collection) Development

Ifpack_IlukGraph: A class for constructing level filled graphs for use with ILU(k) class preconditioners. More...
#include <Ifpack_IlukGraph.h>
Public Member Functions  
Ifpack_IlukGraph (const Epetra_CrsGraph &Graph_in, int LevelFill_in, int LevelOverlap_in)  
Ifpack_IlukGraph constuctor.  
Ifpack_IlukGraph (const Ifpack_IlukGraph &Graph_in)  
Copy constructor.  
virtual  ~Ifpack_IlukGraph () 
Ifpack_IlukGraph Destructor.  
int  SetParameters (const Teuchos::ParameterList ¶meterlist, bool cerr_warning_if_unused=false) 
Set parameters using Teuchos::ParameterList object.  
virtual int  ConstructFilledGraph () 
Does the actual construction of the graph.  
virtual int  ConstructOverlapGraph () 
Does the actual construction of the overlap matrix graph.  
virtual int  LevelFill () const 
Returns the level of fill used to construct this graph.  
virtual int  LevelOverlap () const 
Returns the level of overlap used to construct this graph.  
int  NumGlobalBlockRows () const 
Returns the number of global matrix rows.  
int  NumGlobalBlockCols () const 
Returns the number of global matrix columns.  
int  NumGlobalRows () const 
Returns the number of global matrix rows.  
int  NumGlobalCols () const 
Returns the number of global matrix columns.  
int  NumGlobalNonzeros () const 
Returns the number of nonzero entries in the global graph.  
virtual int  NumGlobalBlockDiagonals () const 
Returns the number of diagonal entries found in the global input graph.  
int  NumMyBlockRows () const 
Returns the number of local matrix rows.  
int  NumMyBlockCols () const 
Returns the number of local matrix columns.  
int  NumMyRows () const 
Returns the number of local matrix rows.  
int  NumMyCols () const 
Returns the number of local matrix columns.  
int  NumMyNonzeros () const 
Returns the number of nonzero entries in the local graph.  
virtual int  NumMyBlockDiagonals () const 
Returns the number of diagonal entries found in the local input graph.  
int  IndexBase () const 
Returns the index base for row and column indices for this graph.  
virtual Epetra_CrsGraph &  L_Graph () 
Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.  
virtual Epetra_CrsGraph &  U_Graph () 
Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.  
virtual Epetra_CrsGraph &  L_Graph () const 
Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.  
virtual Epetra_CrsGraph &  U_Graph () const 
Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.  
virtual Epetra_Import *  OverlapImporter () const 
Returns the importer used to create the overlapped graph.  
virtual Epetra_CrsGraph *  OverlapGraph () const 
Returns the the overlapped graph.  
virtual const Epetra_BlockMap &  DomainMap () const 
Returns the Epetra_BlockMap object associated with the domain of this matrix operator.  
virtual const Epetra_BlockMap &  RangeMap () const 
Returns the Epetra_BlockMap object associated with the range of this matrix operator.  
virtual const Epetra_Comm &  Comm () const 
Returns the Epetra_BlockMap object associated with the range of this matrix operator.  
Private Attributes  
const Epetra_CrsGraph &  Graph_ 
const Epetra_BlockMap &  DomainMap_ 
const Epetra_BlockMap &  RangeMap_ 
const Epetra_Comm &  Comm_ 
Teuchos::RefCountPtr < Epetra_CrsGraph >  OverlapGraph_ 
Teuchos::RefCountPtr < Epetra_BlockMap >  OverlapRowMap_ 
Teuchos::RefCountPtr < Epetra_Import >  OverlapImporter_ 
int  LevelFill_ 
int  LevelOverlap_ 
Teuchos::RefCountPtr < Epetra_CrsGraph >  L_Graph_ 
Teuchos::RefCountPtr < Epetra_CrsGraph >  U_Graph_ 
int  IndexBase_ 
int  NumGlobalRows_ 
int  NumGlobalCols_ 
int  NumGlobalBlockRows_ 
int  NumGlobalBlockCols_ 
int  NumGlobalBlockDiagonals_ 
int  NumGlobalNonzeros_ 
int  NumGlobalEntries_ 
int  NumMyBlockRows_ 
int  NumMyBlockCols_ 
int  NumMyRows_ 
int  NumMyCols_ 
int  NumMyBlockDiagonals_ 
int  NumMyNonzeros_ 
int  NumMyEntries_ 
Friends  
ostream &  operator<< (ostream &os, const Ifpack_IlukGraph &A) 
<< operator will work for Ifpack_IlukGraph. 
Ifpack_IlukGraph: A class for constructing level filled graphs for use with ILU(k) class preconditioners.
The Ifpack_IlukGraph class enable the construction matrix graphs using levelfill algorithms. The only function required for construction is an ExtractRowView capability, i.e., the matrix that is passed in to the constructor must implement the Ifpack_CrsGraph interface defined in Ifpack_CrsMatrix.h
Constructing Ifpack_IlukGraph objects
Constructing Ifpack_IlukGraph objects is usually a two step process of passing in a Ifpack_CrsGraph object and an integer indicating the desired level of fill and then calling the ConstructFilledGraph function to complete the process. This allows warning error codes to be returned to the calling routine.
It is worth noting that an Ifpack_IlukGraph object has two Epetra_CrsGraph objects containing L and U, the graphs for the lower and upper triangular parts of the ILU(k) graph. Thus, it is possible to manually insert and delete graph entries in L and U via the Epetra_CrsGraph InsertIndices and RemoveIndices functions. However, in this case FillComplete must be called before the graph is used for subsequent operations.
Definition at line 64 of file Ifpack_IlukGraph.h.
Ifpack_IlukGraph::Ifpack_IlukGraph  (  const Epetra_CrsGraph &  Graph_in, 
int  LevelFill_in,  
int  LevelOverlap_in  
) 
Ifpack_IlukGraph constuctor.
Creates a Ifpack_IlukGraph object using the input graph and specified level of fill.
In  Graph_in  An existing Ifpack_CrsGraph. This object must implement the Ifpack_CrsGraph functions that provide graph dimension and pattern information. 
In  LevelFill_in  The level of fill to compute via ILU(k) algorithm. 
In  LevelOverlap_in  The level of between subdomains. 
Definition at line 38 of file Ifpack_IlukGraph.cpp.
Ifpack_IlukGraph::Ifpack_IlukGraph  (  const Ifpack_IlukGraph &  Graph_in  ) 
Copy constructor.
Definition at line 64 of file Ifpack_IlukGraph.cpp.
Ifpack_IlukGraph::~Ifpack_IlukGraph  (  )  [virtual] 
Ifpack_IlukGraph Destructor.
Definition at line 97 of file Ifpack_IlukGraph.cpp.
int Ifpack_IlukGraph::SetParameters  (  const Teuchos::ParameterList &  parameterlist, 
bool  cerr_warning_if_unused = false 

) 
Set parameters using Teuchos::ParameterList object.
Definition at line 102 of file Ifpack_IlukGraph.cpp.
int Ifpack_IlukGraph::ConstructFilledGraph  (  )  [virtual] 
Does the actual construction of the graph.
Definition at line 163 of file Ifpack_IlukGraph.cpp.
int Ifpack_IlukGraph::ConstructOverlapGraph  (  )  [virtual] 
Does the actual construction of the overlap matrix graph.
Definition at line 117 of file Ifpack_IlukGraph.cpp.
virtual int Ifpack_IlukGraph::LevelFill  (  )  const [inline, virtual] 
Returns the level of fill used to construct this graph.
Definition at line 118 of file Ifpack_IlukGraph.h.
virtual int Ifpack_IlukGraph::LevelOverlap  (  )  const [inline, virtual] 
Returns the level of overlap used to construct this graph.
Definition at line 121 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalBlockRows  (  )  const [inline] 
Returns the number of global matrix rows.
Definition at line 124 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalBlockCols  (  )  const [inline] 
Returns the number of global matrix columns.
Definition at line 127 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalRows  (  )  const [inline] 
Returns the number of global matrix rows.
Definition at line 131 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalCols  (  )  const [inline] 
Returns the number of global matrix columns.
Definition at line 134 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalNonzeros  (  )  const [inline] 
Returns the number of nonzero entries in the global graph.
Definition at line 136 of file Ifpack_IlukGraph.h.
virtual int Ifpack_IlukGraph::NumGlobalBlockDiagonals  (  )  const [inline, virtual] 
Returns the number of diagonal entries found in the global input graph.
Definition at line 139 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyBlockRows  (  )  const [inline] 
Returns the number of local matrix rows.
Definition at line 142 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyBlockCols  (  )  const [inline] 
Returns the number of local matrix columns.
Definition at line 145 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyRows  (  )  const [inline] 
Returns the number of local matrix rows.
Definition at line 149 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyCols  (  )  const [inline] 
Returns the number of local matrix columns.
Definition at line 152 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyNonzeros  (  )  const [inline] 
Returns the number of nonzero entries in the local graph.
Definition at line 155 of file Ifpack_IlukGraph.h.
virtual int Ifpack_IlukGraph::NumMyBlockDiagonals  (  )  const [inline, virtual] 
Returns the number of diagonal entries found in the local input graph.
Definition at line 158 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::IndexBase  (  )  const [inline] 
Returns the index base for row and column indices for this graph.
Definition at line 161 of file Ifpack_IlukGraph.h.
virtual Epetra_CrsGraph& Ifpack_IlukGraph::L_Graph  (  )  [inline, virtual] 
Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.
Definition at line 164 of file Ifpack_IlukGraph.h.
virtual Epetra_CrsGraph& Ifpack_IlukGraph::U_Graph  (  )  [inline, virtual] 
Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.
Definition at line 167 of file Ifpack_IlukGraph.h.
virtual Epetra_CrsGraph& Ifpack_IlukGraph::L_Graph  (  )  const [inline, virtual] 
Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.
Definition at line 170 of file Ifpack_IlukGraph.h.
virtual Epetra_CrsGraph& Ifpack_IlukGraph::U_Graph  (  )  const [inline, virtual] 
Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.
Definition at line 173 of file Ifpack_IlukGraph.h.
virtual Epetra_Import* Ifpack_IlukGraph::OverlapImporter  (  )  const [inline, virtual] 
Returns the importer used to create the overlapped graph.
Definition at line 176 of file Ifpack_IlukGraph.h.
virtual Epetra_CrsGraph* Ifpack_IlukGraph::OverlapGraph  (  )  const [inline, virtual] 
Returns the the overlapped graph.
Definition at line 179 of file Ifpack_IlukGraph.h.
virtual const Epetra_BlockMap& Ifpack_IlukGraph::DomainMap  (  )  const [inline, virtual] 
Returns the Epetra_BlockMap object associated with the domain of this matrix operator.
Definition at line 182 of file Ifpack_IlukGraph.h.
virtual const Epetra_BlockMap& Ifpack_IlukGraph::RangeMap  (  )  const [inline, virtual] 
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
Definition at line 185 of file Ifpack_IlukGraph.h.
virtual const Epetra_Comm& Ifpack_IlukGraph::Comm  (  )  const [inline, virtual] 
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
Definition at line 188 of file Ifpack_IlukGraph.h.
ostream& operator<<  (  ostream &  os, 
const Ifpack_IlukGraph &  A  
)  [friend] 
<< operator will work for Ifpack_IlukGraph.
Definition at line 405 of file Ifpack_IlukGraph.cpp.
const Epetra_CrsGraph& Ifpack_IlukGraph::Graph_ [private] 
Definition at line 188 of file Ifpack_IlukGraph.h.
const Epetra_BlockMap& Ifpack_IlukGraph::DomainMap_ [private] 
Definition at line 194 of file Ifpack_IlukGraph.h.
const Epetra_BlockMap& Ifpack_IlukGraph::RangeMap_ [private] 
Definition at line 195 of file Ifpack_IlukGraph.h.
const Epetra_Comm& Ifpack_IlukGraph::Comm_ [private] 
Definition at line 196 of file Ifpack_IlukGraph.h.
Definition at line 197 of file Ifpack_IlukGraph.h.
Definition at line 198 of file Ifpack_IlukGraph.h.
Definition at line 199 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::LevelFill_ [private] 
Definition at line 200 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::LevelOverlap_ [private] 
Definition at line 201 of file Ifpack_IlukGraph.h.
Definition at line 202 of file Ifpack_IlukGraph.h.
Definition at line 203 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::IndexBase_ [private] 
Definition at line 204 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalRows_ [private] 
Definition at line 205 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalCols_ [private] 
Definition at line 206 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalBlockRows_ [private] 
Definition at line 207 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalBlockCols_ [private] 
Definition at line 208 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalBlockDiagonals_ [private] 
Definition at line 209 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalNonzeros_ [private] 
Definition at line 210 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumGlobalEntries_ [private] 
Definition at line 211 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyBlockRows_ [private] 
Definition at line 212 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyBlockCols_ [private] 
Definition at line 213 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyRows_ [private] 
Definition at line 214 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyCols_ [private] 
Definition at line 215 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyBlockDiagonals_ [private] 
Definition at line 216 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyNonzeros_ [private] 
Definition at line 217 of file Ifpack_IlukGraph.h.
int Ifpack_IlukGraph::NumMyEntries_ [private] 
Definition at line 218 of file Ifpack_IlukGraph.h.