51#include "Epetra_CompObject.h"
52#include "Epetra_MultiVector.h"
53#include "Epetra_Vector.h"
54#include "Epetra_CrsGraph.h"
55#include "Epetra_CrsMatrix.h"
56#include "Epetra_BlockMap.h"
57#include "Epetra_Map.h"
58#include "Epetra_Object.h"
59#include "Epetra_Comm.h"
60#include "Epetra_RowMatrix.h"
61#include "Epetra_Time.h"
62#include "Teuchos_RefCountPtr.hpp"
176 const int MaxIters = 1550,
177 const double Tol = 1e-9,
233 virtual std::ostream&
Print(std::ostream& os)
const;
335#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
373#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
391 Teuchos::RefCountPtr<Epetra_RowMatrix>
A_;
392 Teuchos::RefCountPtr<Ifpack_IlukGraph>
Graph_;
401 Teuchos::RefCountPtr<Epetra_CrsMatrix>
L_;
403 Teuchos::RefCountPtr<Epetra_CrsMatrix>
U_;
407 Teuchos::RefCountPtr<Epetra_Vector>
D_;
Ifpack_CondestType
Ifpack_CondestType: enum to define the type of condition number estimate.
@ Ifpack_Cheap
cheap estimate
Ifpack_ScalingType enumerable type.
Ifpack_ILU: A class for constructing and using an incomplete lower/upper (ILU) factorization of a giv...
virtual double InitializeTime() const
Returns the time spent in Initialize().
const Epetra_CrsMatrix & U() const
Returns the address of the L factor associated with this factored matrix.
bool IsInitialized() const
Returns true if the preconditioner has been successfully initialized.
double ComputeFlops_
Contains the number of flops for Compute().
int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int NumMyDiagonals() const
Returns the number of nonzero diagonal values found in matrix.
long long NumGlobalRows64() const
virtual double ApplyInverseFlops() const
Returns the number of flops in the application of the preconditioner.
const Epetra_Map * L_RangeMap_
double Athresh_
absolute threshold
int NumGlobalRows() const
Returns the number of global matrix rows.
int SetLabel(const char *Label_in)
Sets label for this object.
Teuchos::RefCountPtr< Epetra_Map > IlukRangeMap_
int NumGlobalNonzeros() const
Returns the number of nonzero entries in the global graph.
double ComputeTime_
Contains the time for all successful calls to Compute().
virtual double InitializeFlops() const
Returns the number of flops in the initialization phase.
Teuchos::RefCountPtr< Epetra_CrsMatrix > U_
Contains the U factors.
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
virtual double ComputeFlops() const
Returns the number of flops in the computation phase.
long long NumGlobalCols64() const
virtual double ComputeTime() const
Returns the time spent in Compute().
double RelaxValue_
Relaxation value.
Teuchos::RefCountPtr< Ifpack_IlukGraph > Graph_
int SetParameters(Teuchos::ParameterList ¶meterlist)
Set parameters using a Teuchos::ParameterList object.
Ifpack_ILU & operator=(const Ifpack_ILU &)
operator= (should never be used)
virtual int NumApplyInverse() const
Returns the number of calls to ApplyInverse().
const Epetra_RowMatrix & Matrix() const
Returns a reference to the matrix to be preconditioned.
const Epetra_Map * U_DomainMap_
int Compute()
Compute ILU factors L and U using the specified graph, diagonal perturbation thresholds and relaxatio...
Ifpack_ILU(const Ifpack_ILU &RHS)
Copy constructor (should never be used)
int Solve(bool Trans, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Ifpack_ILU forward/back solve on a Epetra_MultiVector X in Y.
const Epetra_Comm & Comm() const
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
virtual std::ostream & Print(std::ostream &os) const
Prints on stream basic information about this object.
const Epetra_CrsMatrix & L() const
Returns the address of the L factor associated with this factored matrix.
Epetra_RowMatrix & Matrix()
Returns a reference to the matrix.
const Epetra_Comm & Comm_
Teuchos::RefCountPtr< Epetra_RowMatrix > A_
Pointer to the Epetra_RowMatrix to factorize.
int NumApplyInverse_
Contains the number of successful call to ApplyInverse().
Teuchos::RefCountPtr< Epetra_CrsMatrix > L_
Contains the L factors.
virtual int NumMyBlockDiagonals() const
Returns the number of diagonal entries found in the local input graph.
double AbsoluteThreshold() const
Get absolute threshold value.
int IndexBase() const
Returns the index base for row and column indices for this graph.
bool IsComputed_
If true, the preconditioner has been successfully computed.
Teuchos::RefCountPtr< Epetra_Map > IlukDomainMap_
const Epetra_Vector & D() const
Returns the address of the D factor associated with this factored matrix.
double RelativeThreshold() const
Get relative threshold value.
int NumMyRows() const
Returns the number of local matrix rows.
int InitAllValues(const Epetra_RowMatrix &A, int MaxNumEntries)
int NumMyCols() const
Returns the number of local matrix columns.
virtual double ApplyInverseTime() const
Returns the time spent in ApplyInverse().
bool UseTranspose() const
Returns the current UseTranspose setting.
int NumCompute_
Contains the number of successful call to Compute().
long long NumGlobalNonzeros64() const
double Condest() const
Returns the computed estimated condition number, or -1.0 if not computed.
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
long long IndexBase64() const
bool HasNormInf() const
Returns false because this class cannot compute an Inf-norm.
Teuchos::RefCountPtr< Epetra_Map > IlukRowMap_
Teuchos::RefCountPtr< Epetra_CrsGraph > CrsGraph_
virtual int NumInitialize() const
Returns the number of calls to Initialize().
int LevelOfFill_
Level of fill.
double Rthresh_
relative threshold
Teuchos::RefCountPtr< Epetra_Vector > D_
Diagonal of factors.
void Destroy()
Destroys all internal data.
int SetUseTranspose(bool UseTranspose_in)
If set true, transpose of this operator will be applied.
const Ifpack_IlukGraph & Graph() const
Returns the address of the Ifpack_IlukGraph associated with this factored matrix.
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.
int Initialize()
Initialize the preconditioner, does not touch matrix values.
double Condest_
condition number estimate
virtual int NumCompute() const
Returns the number of calls to Compute().
double RelaxValue() const
Get ILU(k) relaxation parameter.
int NumGlobalCols() const
Returns the number of global matrix columns.
int Multiply(bool Trans, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
char Label_[160]
Label of this object.
double NormInf() const
Returns 0.0 because this class cannot compute Inf-norm.
Epetra_Time Time_
Used for timing issues.
virtual long long NumGlobalBlockDiagonals64() const
bool IsComputed() const
If factor is completed, this query returns true, otherwise it returns false.
double InitializeTime_
Contains the time for all successful calls to Initialize().
int LevelOfFill() const
Returns the level of fill.
Teuchos::RefCountPtr< Epetra_CrsGraph > U_Graph_
const char * Label() const
Returns a character string describing the operator.
virtual int NumGlobalBlockDiagonals() const
Returns the number of diagonal entries found in the global input graph.
Teuchos::RefCountPtr< Epetra_CrsGraph > L_Graph_
int NumMyNonzeros() const
Returns the number of nonzero entries in the local graph.
double ApplyInverseTime_
Contains the time for all successful calls to ApplyInverse().
int NumInitialize_
Contains the number of successful calls to Initialize().
bool IsInitialized_
If true, the preconditioner has been successfully initialized.
double ApplyInverseFlops_
Contain sthe number of flops for ApplyInverse().
Ifpack_IlukGraph: A class for constructing level filled graphs for use with ILU(k) class precondition...
Ifpack_Preconditioner: basic class for preconditioning in Ifpack.