IFPACK Development
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
Ifpack_CrsIlut Class Reference

Ifpack_CrsIlut: ILUT preconditioner of a given Epetra_RowMatrix. More...

#include <Ifpack_CrsIlut.h>

Inheritance diagram for Ifpack_CrsIlut:
Inheritance graph
[legend]
Collaboration diagram for Ifpack_CrsIlut:
Collaboration graph
[legend]

Public Member Functions

 Ifpack_CrsIlut (const Ifpack_OverlapGraph *OverlapGraph, double DropTol=1.0E-4, double FillTol=1.0)
 Constructor using Ifpack_OverlapGraph.
 
 Ifpack_CrsIlut (const Epetra_RowMatrix *UserMatrix, double DropTol=1.0E-4, double FillTol=1.0)
 Constructor using Epetra_RowMatrix.
 
 Ifpack_CrsIlut (const Ifpack_CrsIlut &Source)
 Copy constructor.
 
virtual ~Ifpack_CrsIlut ()
 Ifpack_CrsIlut Destructor.
 
int SetDropTol (double DropTol)
 Set Drop tolerance value as defined by the ILUT algorithm.
 
int SetFillTol (double FillTol)
 Set fill tolerance value as defined by the ILUT algorithm.
 
int SetParameters (const Teuchos::ParameterList &parameterlist, bool cerr_warning_if_unused=false)
 Set parameters using a Teuchos::ParameterList object.
 
double DropTol () const
 Set Drop tolerance value as defined by the ILUT algorithm.
 
double FillTol () const
 Set fill tolerance value as defined by the ILUT algorithm.
 
- Public Member Functions inherited from Epetra_Object
 Epetra_Object (int TracebackModeIn=-1, bool set_label=true)
 
 Epetra_Object (const char *const Label, int TracebackModeIn=-1)
 
 Epetra_Object (const Epetra_Object &Object)
 
virtual void Print (std::ostream &os) const
 
virtual int ReportError (const std::string Message, int ErrorCode) const
 
 Epetra_Object (int TracebackModeIn=-1, bool set_label=true)
 
 Epetra_Object (const char *const Label, int TracebackModeIn=-1)
 
 Epetra_Object (const Epetra_Object &Object)
 
virtual void SetLabel (const char *const Label)
 
virtual const char * Label () const
 
- Public Member Functions inherited from Epetra_CompObject
 Epetra_CompObject (const Epetra_CompObject &Source)
 
void SetFlopCounter (const Epetra_Flops &FlopCounter_in)
 
void SetFlopCounter (const Epetra_CompObject &CompObject)
 
void UnsetFlopCounter ()
 
Epetra_FlopsGetFlopCounter () const
 
void ResetFlops () const
 
double Flops () const
 
void UpdateFlops (int Flops_in) const
 
void UpdateFlops (long int Flops_in) const
 
void UpdateFlops (long long Flops_in) const
 
void UpdateFlops (double Flops_in) const
 
void UpdateFlops (float Flops_in) const
 
 Epetra_CompObject (const Epetra_CompObject &Source)
 
void SetFlopCounter (const Epetra_Flops &FlopCounter_in)
 
void SetFlopCounter (const Epetra_CompObject &CompObject)
 
void UnsetFlopCounter ()
 
Epetra_FlopsGetFlopCounter () const
 
void ResetFlops () const
 
double Flops () const
 
- Public Member Functions inherited from Ifpack_OverlapFactorObject
 Ifpack_OverlapFactorObject (const Ifpack_OverlapGraph *OverlapGraph)
 Constructor using Ifpack_OverlapGraph.
 
 Ifpack_OverlapFactorObject (const Epetra_RowMatrix *UserMatrix)
 Constructor using Epetra_RowMatrix.
 
 Ifpack_OverlapFactorObject (const Ifpack_OverlapFactorObject &Source)
 Copy constructor.
 
virtual ~Ifpack_OverlapFactorObject ()
 Ifpack_OverlapFactorObject Destructor.
 
virtual int InitValues (const Epetra_RowMatrix *UserMatrix)
 Initialize values from user matrix A, can be called repeatedly as matrix values change.
 
virtual int Factor ()
 Compute factors.
 
bool Allocated () const
 If storage has been allocated, this query returns true, otherwise it returns false.
 
bool ValuesInitialized () const
 If values have been initialized, this query returns true, otherwise it returns false.
 
bool Factored () const
 If factor is completed, this query returns true, otherwise it returns false.
 
- Public Member Functions inherited from Ifpack_OverlapSolveObject
 Ifpack_OverlapSolveObject (char *Label, const Epetra_Comm &Comm)
 Constructor.
 
 Ifpack_OverlapSolveObject (const Ifpack_OverlapSolveObject &Source)
 Copy constructor.
 
virtual ~Ifpack_OverlapSolveObject ()
 Ifpack_OverlapSolveObject Destructor.
 
void SetOverlapMode (Epetra_CombineMode OverlapMode)
 Generate Ifpack_OverlapGraph object using current settings.
 
int SetLowerOperator (Epetra_CrsMatrix *L, bool UseLTrans)
 Define the operator to be used for the lower triangle.
 
int SetDiagonal (Epetra_Vector *D, bool UseDInv)
 Define the vector to be used for the diagonal.
 
int SetUpperOperator (Epetra_CrsMatrix *U, bool UseUTrans)
 Define the operator to be used for the upper triangle.
 
int Solve (bool Trans, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Ifpack_CrsIlut forward/back solve on a Epetra_MultiVector X in Y (works for Epetra_Vectors also).
 
int Multiply (bool Trans, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of multiplying U, D and L in that order on an Epetra_MultiVector X in Y.
 
int Condest (bool Trans, double &ConditionNumberEstimate) const
 Returns the maximum over all the condition number estimate for each local ILU set of factors.
 
Epetra_CombineMode OverlapMode () const
 Returns the overlap mode used to combine terms that are redundantly computed.
 
int NumGlobalNonzeros () const
 Returns the number of nonzero entries in the global graph.
 
int NumMyNonzeros () const
 Returns the number of nonzero entries in the local graph.
 
const Epetra_CrsMatrixL () const
 Returns the address of the L factor associated with this factored matrix.
 
const Epetra_VectorD () const
 Returns the address of the D factor associated with this factored matrix.
 
const Epetra_CrsMatrixU () const
 Returns the address of the L factor associated with this factored matrix.
 
const char * Label () const
 Returns a character string describing the operator.
 
int SetUseTranspose (bool UseTranspose)
 If set true, transpose of this operator will be applied.
 
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
 
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
 
double NormInf () const
 Returns 0.0 because this class cannot compute Inf-norm.
 
bool HasNormInf () const
 Returns false because this class cannot compute an Inf-norm.
 
bool UseTranspose () const
 Returns the current UseTranspose setting.
 
const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this operator.
 
const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this operator.
 
const Epetra_CommComm () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator.
 
virtual int SetUseTranspose (bool UseTranspose)=0
 
virtual int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual double NormInf () const=0
 
virtual const char * Label () const=0
 
virtual bool UseTranspose () const=0
 
virtual bool HasNormInf () const=0
 
virtual const Epetra_CommComm () const=0
 
virtual const Epetra_MapOperatorDomainMap () const=0
 
virtual const Epetra_MapOperatorRangeMap () const=0
 
virtual int SetUseTranspose (bool UseTranspose)=0
 
virtual int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0
 
virtual double NormInf () const=0
 
virtual const char * Label () const=0
 
virtual bool UseTranspose () const=0
 
virtual bool HasNormInf () const=0
 
virtual const Epetra_CommComm () const=0
 
virtual const Epetra_MapOperatorDomainMap () const=0
 
virtual const Epetra_MapOperatorRangeMap () const=0
 

Protected Member Functions

int ProcessOverlapMatrix (const Epetra_RowMatrix &A)
 Processes the overlapped user matrix for computing the ILUT preconditioner.
 
int DerivedFactor ()
 Compute ILUT factors L and U: WARNING: THIS ROUTINE IS NOT USER CALLABLE, CALL Factor().
 
- Protected Member Functions inherited from Ifpack_OverlapFactorObject
virtual int ProcessOverlapMatrix (const Epetra_RowMatrix &A)=0
 Virtual method that processes the overlap matrix as needed by the derived class.
 
virtual int DerivedFactor ()=0
 Virtual method that computes the factors as needed by the derived class.
 
void SetAllocated (bool Flag)
 
void SetFactored (bool Flag)
 
void SetValuesInitialized (bool Flag)
 
- Protected Member Functions inherited from Ifpack_OverlapSolveObject
virtual int SetupXY (bool Trans, const Epetra_MultiVector &Xin, const Epetra_MultiVector &Yin, Epetra_MultiVector *&Xout, Epetra_MultiVector *&Yout) const =0
 

Additional Inherited Members

- Static Public Member Functions inherited from Epetra_Object
static void SetTracebackMode (int TracebackModeValue)
 
static int GetTracebackMode ()
 
static std::ostream & GetTracebackStream ()
 
- Protected Attributes inherited from Ifpack_OverlapFactorObject
bool Factored_
 
bool Allocated_
 
bool ValuesInitialized_
 
Ifpack_OverlapGraphOverlapGraph_
 
Epetra_RowMatrixUserMatrix_
 

Detailed Description

Ifpack_CrsIlut: ILUT preconditioner of a given Epetra_RowMatrix.

Definition at line 64 of file Ifpack_CrsIlut.h.

Constructor & Destructor Documentation

◆ Ifpack_CrsIlut() [1/3]

Ifpack_CrsIlut::Ifpack_CrsIlut ( const Ifpack_OverlapGraph OverlapGraph,
double  DropTol = 1.0E-4,
double  FillTol = 1.0 
)

Constructor using Ifpack_OverlapGraph.

Creates an object from the overlap graph.

Parameters
OverlapGraph(In) - Graph describing the graph that should be used for the factors.
DropTol(In/Default) - Drop tolerance used by ILUT algorithm.
FillTol(In/Default) - Fill tolerance used by ILUT algorithm.

Definition at line 57 of file Ifpack_CrsIlut.cpp.

◆ Ifpack_CrsIlut() [2/3]

Ifpack_CrsIlut::Ifpack_CrsIlut ( const Epetra_RowMatrix UserMatrix,
double  DropTol = 1.0E-4,
double  FillTol = 1.0 
)

Constructor using Epetra_RowMatrix.

Creates an Ifpack_Graph object from the user graph implicitly defined by the Epetra_RowMatrix interface.

Parameters
RowMatrix(In) - An object that has implemented the Epetra_RowMatrix interface.
DropTol(In/Default) - Drop tolerance used by ILUT algorithm.
FillTol(In/Default) - Fill tolerance used by ILUT algorithm.

Definition at line 68 of file Ifpack_CrsIlut.cpp.

◆ Ifpack_CrsIlut() [3/3]

Ifpack_CrsIlut::Ifpack_CrsIlut ( const Ifpack_CrsIlut Source)

Copy constructor.

Definition at line 79 of file Ifpack_CrsIlut.cpp.

Member Function Documentation

◆ DerivedFactor()

int Ifpack_CrsIlut::DerivedFactor ( )
protectedvirtual

Compute ILUT factors L and U: WARNING: THIS ROUTINE IS NOT USER CALLABLE, CALL Factor().

Implements Ifpack_OverlapFactorObject.

Definition at line 112 of file Ifpack_CrsIlut.cpp.

◆ DropTol()

double Ifpack_CrsIlut::DropTol ( ) const
inline

Set Drop tolerance value as defined by the ILUT algorithm.

Definition at line 118 of file Ifpack_CrsIlut.h.

Referenced by SetDropTol().

◆ FillTol()

double Ifpack_CrsIlut::FillTol ( ) const
inline

Set fill tolerance value as defined by the ILUT algorithm.

Definition at line 121 of file Ifpack_CrsIlut.h.

Referenced by SetFillTol().

◆ ProcessOverlapMatrix()

int Ifpack_CrsIlut::ProcessOverlapMatrix ( const Epetra_RowMatrix A)
protectedvirtual

Processes the overlapped user matrix for computing the ILUT preconditioner.

Implements Ifpack_OverlapFactorObject.

Definition at line 106 of file Ifpack_CrsIlut.cpp.

◆ SetDropTol()

int Ifpack_CrsIlut::SetDropTol ( double  DropTol)
inline

Set Drop tolerance value as defined by the ILUT algorithm.

Definition at line 100 of file Ifpack_CrsIlut.h.

References DropTol().

◆ SetFillTol()

int Ifpack_CrsIlut::SetFillTol ( double  FillTol)
inline

Set fill tolerance value as defined by the ILUT algorithm.

Definition at line 103 of file Ifpack_CrsIlut.h.

References FillTol().

◆ SetParameters()

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

Set parameters using a Teuchos::ParameterList object.

Definition at line 90 of file Ifpack_CrsIlut.cpp.


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