Ifpack_IlukGraph Class Reference

Ifpack_IlukGraph: A class for constructing level filled graphs for use with ILU(k) class preconditioners. More...

#include <Ifpack_IlukGraph.h>

List of all members.

Public Member Functions

 Ifpack_IlukGraph (const Epetra_CrsGraph &Graph, int LevelFill, int LevelOverlap)
 Ifpack_IlukGraph constuctor.
 Ifpack_IlukGraph (const Ifpack_IlukGraph &Graph)
 Copy constructor.
virtual ~Ifpack_IlukGraph ()
 Ifpack_IlukGraph Destructor.
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_CrsGraphL_Graph ()
 Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.
virtual Epetra_CrsGraphU_Graph ()
 Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.
virtual Epetra_CrsGraphL_Graph () const
 Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.
virtual Epetra_CrsGraphU_Graph () const
 Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.
virtual Epetra_ImportOverlapImporter () const
 Returns the importer used to create the overlapped graph.
virtual Epetra_CrsGraphOverlapGraph () const
 Returns the the overlapped graph.
virtual const Epetra_BlockMapDomainMap () const
 Returns the Epetra_BlockMap object associated with the domain of this matrix operator.
virtual const Epetra_BlockMapRangeMap () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator.
virtual const Epetra_CommComm () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator.

Private Attributes

const Epetra_CrsGraphGraph_
const Epetra_BlockMapDomainMap_
const Epetra_BlockMapRangeMap_
const Epetra_CommComm_
Epetra_CrsGraphOverlapGraph_
Epetra_BlockMapOverlapRowMap_
Epetra_ImportOverlapImporter_
int LevelFill_
int LevelOverlap_
Epetra_CrsGraphL_Graph_
Epetra_CrsGraphU_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.


Detailed Description

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 level-fill 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 63 of file Ifpack_IlukGraph.h.


Constructor & Destructor Documentation

Ifpack_IlukGraph::Ifpack_IlukGraph const Epetra_CrsGraph Graph,
int  LevelFill,
int  LevelOverlap
 

Ifpack_IlukGraph constuctor.

Creates a Ifpack_IlukGraph object using the input graph and specified level of fill.

Parameters:
In Graph - An existing Ifpack_CrsGraph. This object must implement the Ifpack_CrsGraph functions that provide graph dimension and pattern information.
In LevelFill - The level of fill to compute via ILU(k) algorithm.
In LevelOverlap - The level of between subdomains.
Warning:
Actual construction occurs in ConstructFilledGraph. This allows error codes to be passed back to the user.

Definition at line 40 of file Ifpack_IlukGraph.cpp.

Ifpack_IlukGraph::Ifpack_IlukGraph const Ifpack_IlukGraph Graph  ) 
 

Copy constructor.

Definition at line 71 of file Ifpack_IlukGraph.cpp.

Ifpack_IlukGraph::~Ifpack_IlukGraph  )  [virtual]
 

Ifpack_IlukGraph Destructor.

Definition at line 106 of file Ifpack_IlukGraph.cpp.


Member Function Documentation

int Ifpack_IlukGraph::ConstructFilledGraph  )  [virtual]
 

Does the actual construction of the graph.

Definition at line 182 of file Ifpack_IlukGraph.cpp.

int Ifpack_IlukGraph::ConstructOverlapGraph  )  [virtual]
 

Does the actual construction of the overlap matrix graph.

Definition at line 133 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 119 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 122 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalBlockRows  )  const [inline]
 

Returns the number of global matrix rows.

Definition at line 125 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalBlockCols  )  const [inline]
 

Returns the number of global matrix columns.

Definition at line 128 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalRows  )  const [inline]
 

Returns the number of global matrix rows.

Definition at line 132 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalCols  )  const [inline]
 

Returns the number of global matrix columns.

Definition at line 135 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalNonzeros  )  const [inline]
 

Returns the number of nonzero entries in the global graph.

Definition at line 137 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 140 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockRows  )  const [inline]
 

Returns the number of local matrix rows.

Definition at line 143 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockCols  )  const [inline]
 

Returns the number of local matrix columns.

Definition at line 146 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyRows  )  const [inline]
 

Returns the number of local matrix rows.

Definition at line 150 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyCols  )  const [inline]
 

Returns the number of local matrix columns.

Definition at line 153 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyNonzeros  )  const [inline]
 

Returns the number of nonzero entries in the local graph.

Definition at line 156 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 159 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 162 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 165 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 168 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 171 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 174 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 177 of file Ifpack_IlukGraph.h.

virtual Epetra_CrsGraph* Ifpack_IlukGraph::OverlapGraph  )  const [inline, virtual]
 

Returns the the overlapped graph.

Definition at line 180 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 183 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 186 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 189 of file Ifpack_IlukGraph.h.


Friends And Related Function Documentation

ostream& operator<< ostream &  os,
const Ifpack_IlukGraph A
[friend]
 

<< operator will work for Ifpack_IlukGraph.

Definition at line 436 of file Ifpack_IlukGraph.cpp.


Member Data Documentation

const Epetra_CrsGraph& Ifpack_IlukGraph::Graph_ [private]
 

Definition at line 194 of file Ifpack_IlukGraph.h.

const Epetra_BlockMap& Ifpack_IlukGraph::DomainMap_ [private]
 

Definition at line 195 of file Ifpack_IlukGraph.h.

const Epetra_BlockMap& Ifpack_IlukGraph::RangeMap_ [private]
 

Definition at line 196 of file Ifpack_IlukGraph.h.

const Epetra_Comm& Ifpack_IlukGraph::Comm_ [private]
 

Definition at line 197 of file Ifpack_IlukGraph.h.

Epetra_CrsGraph* Ifpack_IlukGraph::OverlapGraph_ [private]
 

Definition at line 198 of file Ifpack_IlukGraph.h.

Epetra_BlockMap* Ifpack_IlukGraph::OverlapRowMap_ [private]
 

Definition at line 199 of file Ifpack_IlukGraph.h.

Epetra_Import* Ifpack_IlukGraph::OverlapImporter_ [private]
 

Definition at line 200 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::LevelFill_ [private]
 

Definition at line 201 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::LevelOverlap_ [private]
 

Definition at line 202 of file Ifpack_IlukGraph.h.

Epetra_CrsGraph* Ifpack_IlukGraph::L_Graph_ [private]
 

Definition at line 203 of file Ifpack_IlukGraph.h.

Epetra_CrsGraph* Ifpack_IlukGraph::U_Graph_ [private]
 

Definition at line 204 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::IndexBase_ [private]
 

Definition at line 205 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalRows_ [private]
 

Definition at line 206 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalCols_ [private]
 

Definition at line 207 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalBlockRows_ [private]
 

Definition at line 208 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalBlockCols_ [private]
 

Definition at line 209 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalBlockDiagonals_ [private]
 

Definition at line 210 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalNonzeros_ [private]
 

Definition at line 211 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalEntries_ [private]
 

Definition at line 212 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockRows_ [private]
 

Definition at line 213 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockCols_ [private]
 

Definition at line 214 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyRows_ [private]
 

Definition at line 215 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyCols_ [private]
 

Definition at line 216 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockDiagonals_ [private]
 

Definition at line 217 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyNonzeros_ [private]
 

Definition at line 218 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyEntries_ [private]
 

Definition at line 219 of file Ifpack_IlukGraph.h.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:37:30 2008 for Ifpack Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1