Ifpack Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | Friends | List of all members
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>

Public Member Functions

 Ifpack_IlukGraph (const Epetra_CrsGraph &Graph_in, int LevelFill_in, int LevelOverlap_in)
 Ifpack_IlukGraph constuctor. More...
 
 Ifpack_IlukGraph (const Ifpack_IlukGraph &Graph_in)
 Copy constructor. More...
 
virtual ~Ifpack_IlukGraph ()
 Ifpack_IlukGraph Destructor. More...
 
int SetParameters (const Teuchos::ParameterList &parameterlist, bool cerr_warning_if_unused=false)
 Set parameters using Teuchos::ParameterList object. More...
 
virtual int ConstructFilledGraph ()
 Does the actual construction of the graph. More...
 
virtual int ConstructOverlapGraph ()
 Does the actual construction of the overlap matrix graph. More...
 
virtual int LevelFill () const
 Returns the level of fill used to construct this graph. More...
 
virtual int LevelOverlap () const
 Returns the level of overlap used to construct this graph. More...
 
int NumGlobalBlockRows () const
 Returns the number of global matrix rows. More...
 
int NumGlobalBlockCols () const
 Returns the number of global matrix columns. More...
 
int NumGlobalRows () const
 Returns the number of global matrix rows. More...
 
int NumGlobalCols () const
 Returns the number of global matrix columns. More...
 
int NumGlobalNonzeros () const
 Returns the number of nonzero entries in the global graph. More...
 
virtual int NumGlobalBlockDiagonals () const
 Returns the number of diagonal entries found in the global input graph. More...
 
long long NumGlobalBlockRows64 () const
 Returns the number of global matrix rows. More...
 
long long NumGlobalBlockCols64 () const
 Returns the number of global matrix columns. More...
 
long long NumGlobalRows64 () const
 Returns the number of global matrix rows. More...
 
long long NumGlobalCols64 () const
 Returns the number of global matrix columns. More...
 
long long NumGlobalNonzeros64 () const
 Returns the number of nonzero entries in the global graph. More...
 
virtual long long NumGlobalBlockDiagonals64 () const
 Returns the number of diagonal entries found in the global input graph. More...
 
int NumMyBlockRows () const
 Returns the number of local matrix rows. More...
 
int NumMyBlockCols () const
 Returns the number of local matrix columns. More...
 
int NumMyRows () const
 Returns the number of local matrix rows. More...
 
int NumMyCols () const
 Returns the number of local matrix columns. More...
 
int NumMyNonzeros () const
 Returns the number of nonzero entries in the local graph. More...
 
virtual int NumMyBlockDiagonals () const
 Returns the number of diagonal entries found in the local input graph. More...
 
int IndexBase () const
 Returns the index base for row and column indices for this graph. More...
 
long long IndexBase64 () const
 
virtual Epetra_CrsGraphL_Graph ()
 Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph. More...
 
virtual Epetra_CrsGraphU_Graph ()
 Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph. More...
 
virtual Epetra_CrsGraphL_Graph () const
 Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph. More...
 
virtual Epetra_CrsGraphU_Graph () const
 Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph. More...
 
virtual Epetra_ImportOverlapImporter () const
 Returns the importer used to create the overlapped graph. More...
 
virtual Epetra_CrsGraphOverlapGraph () const
 Returns the the overlapped graph. More...
 
virtual const Epetra_BlockMapDomainMap () const
 Returns the Epetra_BlockMap object associated with the domain of this matrix operator. More...
 
virtual const Epetra_BlockMapRangeMap () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator. More...
 
virtual const Epetra_CommComm () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator. More...
 

Private Attributes

const Epetra_CrsGraphGraph_
 
const Epetra_BlockMapDomainMap_
 
const Epetra_BlockMapRangeMap_
 
const Epetra_CommComm_
 
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_
 
long long IndexBase_
 
long long NumGlobalRows_
 
long long NumGlobalCols_
 
long long NumGlobalBlockRows_
 
long long NumGlobalBlockCols_
 
long long NumGlobalBlockDiagonals_
 
long long NumGlobalNonzeros_
 
long long NumGlobalEntries_
 
int NumMyBlockRows_
 
int NumMyBlockCols_
 
int NumMyRows_
 
int NumMyCols_
 
int NumMyBlockDiagonals_
 
int NumMyNonzeros_
 
int NumMyEntries_
 

Friends

std::ostream & operator<< (std::ostream &os, const Ifpack_IlukGraph &A)
 << operator will work for Ifpack_IlukGraph. More...
 

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 83 of file Ifpack_IlukGraph.h.

Constructor & Destructor Documentation

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.

Parameters
InGraph_in - An existing Ifpack_CrsGraph. This object must implement the Ifpack_CrsGraph functions that provide graph dimension and pattern information.
InLevelFill_in - The level of fill to compute via ILU(k) algorithm.
InLevelOverlap_in - 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 52 of file Ifpack_IlukGraph.cpp.

Ifpack_IlukGraph::Ifpack_IlukGraph ( const Ifpack_IlukGraph Graph_in)

Copy constructor.

Definition at line 78 of file Ifpack_IlukGraph.cpp.

Ifpack_IlukGraph::~Ifpack_IlukGraph ( )
virtual

Ifpack_IlukGraph Destructor.

Definition at line 111 of file Ifpack_IlukGraph.cpp.

Member Function Documentation

int Ifpack_IlukGraph::SetParameters ( const Teuchos::ParameterList parameterlist,
bool  cerr_warning_if_unused = false 
)

Set parameters using Teuchos::ParameterList object.

Definition at line 116 of file Ifpack_IlukGraph.cpp.

int Ifpack_IlukGraph::ConstructFilledGraph ( )
virtual

Does the actual construction of the graph.

Definition at line 177 of file Ifpack_IlukGraph.cpp.

int Ifpack_IlukGraph::ConstructOverlapGraph ( )
virtual

Does the actual construction of the overlap matrix graph.

Definition at line 131 of file Ifpack_IlukGraph.cpp.

virtual int Ifpack_IlukGraph::LevelFill ( ) const
inlinevirtual

Returns the level of fill used to construct this graph.

Definition at line 137 of file Ifpack_IlukGraph.h.

virtual int Ifpack_IlukGraph::LevelOverlap ( ) const
inlinevirtual

Returns the level of overlap used to construct this graph.

Definition at line 140 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalBlockRows ( ) const
inline

Returns the number of global matrix rows.

Definition at line 144 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalBlockCols ( ) const
inline

Returns the number of global matrix columns.

Definition at line 152 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalRows ( ) const
inline

Returns the number of global matrix rows.

Definition at line 160 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalCols ( ) const
inline

Returns the number of global matrix columns.

Definition at line 168 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumGlobalNonzeros ( ) const
inline

Returns the number of nonzero entries in the global graph.

Definition at line 175 of file Ifpack_IlukGraph.h.

virtual int Ifpack_IlukGraph::NumGlobalBlockDiagonals ( ) const
inlinevirtual

Returns the number of diagonal entries found in the global input graph.

Definition at line 183 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalBlockRows64 ( ) const
inline

Returns the number of global matrix rows.

Definition at line 192 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalBlockCols64 ( ) const
inline

Returns the number of global matrix columns.

Definition at line 195 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalRows64 ( ) const
inline

Returns the number of global matrix rows.

Definition at line 198 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalCols64 ( ) const
inline

Returns the number of global matrix columns.

Definition at line 201 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalNonzeros64 ( ) const
inline

Returns the number of nonzero entries in the global graph.

Definition at line 203 of file Ifpack_IlukGraph.h.

virtual long long Ifpack_IlukGraph::NumGlobalBlockDiagonals64 ( ) const
inlinevirtual

Returns the number of diagonal entries found in the global input graph.

Definition at line 206 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockRows ( ) const
inline

Returns the number of local matrix rows.

Definition at line 209 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockCols ( ) const
inline

Returns the number of local matrix columns.

Definition at line 212 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyRows ( ) const
inline

Returns the number of local matrix rows.

Definition at line 216 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyCols ( ) const
inline

Returns the number of local matrix columns.

Definition at line 219 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyNonzeros ( ) const
inline

Returns the number of nonzero entries in the local graph.

Definition at line 222 of file Ifpack_IlukGraph.h.

virtual int Ifpack_IlukGraph::NumMyBlockDiagonals ( ) const
inlinevirtual

Returns the number of diagonal entries found in the local input graph.

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

long long Ifpack_IlukGraph::IndexBase64 ( ) const
inline

Definition at line 235 of file Ifpack_IlukGraph.h.

virtual Epetra_CrsGraph& Ifpack_IlukGraph::L_Graph ( )
inlinevirtual

Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.

Definition at line 238 of file Ifpack_IlukGraph.h.

virtual Epetra_CrsGraph& Ifpack_IlukGraph::U_Graph ( )
inlinevirtual

Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.

Definition at line 241 of file Ifpack_IlukGraph.h.

virtual Epetra_CrsGraph& Ifpack_IlukGraph::L_Graph ( ) const
inlinevirtual

Returns the graph of lower triangle of the ILU(k) graph as a Epetra_CrsGraph.

Definition at line 244 of file Ifpack_IlukGraph.h.

virtual Epetra_CrsGraph& Ifpack_IlukGraph::U_Graph ( ) const
inlinevirtual

Returns the graph of upper triangle of the ILU(k) graph as a Epetra_CrsGraph.

Definition at line 247 of file Ifpack_IlukGraph.h.

virtual Epetra_Import* Ifpack_IlukGraph::OverlapImporter ( ) const
inlinevirtual

Returns the importer used to create the overlapped graph.

Definition at line 250 of file Ifpack_IlukGraph.h.

virtual Epetra_CrsGraph* Ifpack_IlukGraph::OverlapGraph ( ) const
inlinevirtual

Returns the the overlapped graph.

Definition at line 253 of file Ifpack_IlukGraph.h.

virtual const Epetra_BlockMap& Ifpack_IlukGraph::DomainMap ( ) const
inlinevirtual

Returns the Epetra_BlockMap object associated with the domain of this matrix operator.

Definition at line 256 of file Ifpack_IlukGraph.h.

virtual const Epetra_BlockMap& Ifpack_IlukGraph::RangeMap ( ) const
inlinevirtual

Returns the Epetra_BlockMap object associated with the range of this matrix operator.

Definition at line 259 of file Ifpack_IlukGraph.h.

virtual const Epetra_Comm& Ifpack_IlukGraph::Comm ( ) const
inlinevirtual

Returns the Epetra_BlockMap object associated with the range of this matrix operator.

Definition at line 262 of file Ifpack_IlukGraph.h.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Ifpack_IlukGraph A 
)
friend

<< operator will work for Ifpack_IlukGraph.

Definition at line 422 of file Ifpack_IlukGraph.cpp.

Member Data Documentation

const Epetra_CrsGraph& Ifpack_IlukGraph::Graph_
private

Definition at line 262 of file Ifpack_IlukGraph.h.

const Epetra_BlockMap& Ifpack_IlukGraph::DomainMap_
private

Definition at line 268 of file Ifpack_IlukGraph.h.

const Epetra_BlockMap& Ifpack_IlukGraph::RangeMap_
private

Definition at line 269 of file Ifpack_IlukGraph.h.

const Epetra_Comm& Ifpack_IlukGraph::Comm_
private

Definition at line 270 of file Ifpack_IlukGraph.h.

Teuchos::RefCountPtr<Epetra_CrsGraph> Ifpack_IlukGraph::OverlapGraph_
private

Definition at line 271 of file Ifpack_IlukGraph.h.

Teuchos::RefCountPtr<Epetra_BlockMap> Ifpack_IlukGraph::OverlapRowMap_
private

Definition at line 272 of file Ifpack_IlukGraph.h.

Teuchos::RefCountPtr<Epetra_Import> Ifpack_IlukGraph::OverlapImporter_
private

Definition at line 273 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::LevelFill_
private

Definition at line 274 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::LevelOverlap_
private

Definition at line 275 of file Ifpack_IlukGraph.h.

Teuchos::RefCountPtr<Epetra_CrsGraph> Ifpack_IlukGraph::L_Graph_
private

Definition at line 276 of file Ifpack_IlukGraph.h.

Teuchos::RefCountPtr<Epetra_CrsGraph> Ifpack_IlukGraph::U_Graph_
private

Definition at line 277 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::IndexBase_
private

Definition at line 278 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalRows_
private

Definition at line 279 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalCols_
private

Definition at line 280 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalBlockRows_
private

Definition at line 281 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalBlockCols_
private

Definition at line 282 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalBlockDiagonals_
private

Definition at line 283 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalNonzeros_
private

Definition at line 284 of file Ifpack_IlukGraph.h.

long long Ifpack_IlukGraph::NumGlobalEntries_
private

Definition at line 285 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockRows_
private

Definition at line 286 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockCols_
private

Definition at line 287 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyRows_
private

Definition at line 288 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyCols_
private

Definition at line 289 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyBlockDiagonals_
private

Definition at line 290 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyNonzeros_
private

Definition at line 291 of file Ifpack_IlukGraph.h.

int Ifpack_IlukGraph::NumMyEntries_
private

Definition at line 292 of file Ifpack_IlukGraph.h.


The documentation for this class was generated from the following files: