43 #ifndef _IFPACK_CRSRILUK_H_ 44 #define _IFPACK_CRSRILUK_H_ 49 #include "Epetra_ConfigDefs.h" 50 #include "Epetra_CompObject.h" 51 #include "Epetra_Operator.h" 52 #include "Epetra_CrsMatrix.h" 53 #include "Epetra_Object.h" 54 #include "Epetra_MultiVector.h" 55 #include "Epetra_Vector.h" 56 #include "Epetra_Map.h" 61 #include "Teuchos_RefCountPtr.hpp" 247 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES // FIXME LONG LONG 275 bool cerr_warning_if_unused=
false);
330 int Condest(
bool Trans,
double & ConditionNumberEstimate)
const;
346 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES 381 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES 482 Teuchos::RefCountPtr<Epetra_MultiVector>* Xout,
483 Teuchos::RefCountPtr<Epetra_MultiVector>* Yout)
const;
494 Teuchos::RefCountPtr<Epetra_CrsMatrix>
L_;
495 Teuchos::RefCountPtr<Epetra_CrsMatrix>
U_;
498 Teuchos::RefCountPtr<Epetra_Vector>
D_;
510 mutable Teuchos::RefCountPtr<Epetra_MultiVector>
OverlapX_;
511 mutable Teuchos::RefCountPtr<Epetra_MultiVector>
OverlapY_;
512 mutable Teuchos::RefCountPtr<Epetra_MultiVector>
VbrX_;
513 mutable Teuchos::RefCountPtr<Epetra_MultiVector>
VbrY_;
Teuchos::RefCountPtr< const Epetra_Map > L_RangeMap_
double GetRelaxValue()
Get RILU(k) relaxation parameter.
int NumMyRows() const
Returns the number of local matrix rows.
int BlockMap2PointMap(const Epetra_BlockMap &BlockMap, Teuchos::RefCountPtr< Epetra_Map > *PointMap)
Ifpack_CrsRiluk: A class for constructing and using an incomplete lower/upper (ILU) factorization of ...
void SetFactored(bool Flag)
Epetra_CombineMode GetOverlapMode()
Get overlap mode type.
Teuchos::RefCountPtr< Epetra_CrsGraph > U_Graph_
Teuchos::RefCountPtr< const Epetra_Map > U_DomainMap_
int NumGlobalCols() const
Returns the number of global matrix columns.
const Epetra_CrsMatrix & L() const
Returns the address of the L factor associated with this factored matrix.
Teuchos::RefCountPtr< Epetra_MultiVector > OverlapY_
bool HasNormInf() const
Returns false because this class cannot compute an Inf-norm.
int IndexBase() const
Returns the index base for row and column indices for this graph.
void SetOverlapMode(Epetra_CombineMode OverlapMode)
Set overlap mode type.
double NormInf() const
Returns 0.0 because this class cannot compute Inf-norm.
int Solve(bool Trans, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Ifpack_CrsRiluk forward/back solve on a Epetra_MultiVector X in Y (works for ...
Ifpack_IlukGraph: A class for constructing level filled graphs for use with ILU(k) class precondition...
bool ValuesInitialized() const
If values have been initialized, this query returns true, otherwise it returns false.
int BlockGraph2PointGraph(const Epetra_CrsGraph &BG, Epetra_CrsGraph &PG, bool Upper)
void SetAbsoluteThreshold(double Athresh)
Set absolute threshold value.
int SetAllocated(bool Flag)
int NumMyNonzeros() const
Returns the number of nonzero entries in the local graph.
int Condest(bool Trans, double &ConditionNumberEstimate) const
Returns the maximum over all the condition number estimate for each local ILU set of factors...
int NumGlobalRows() const
Returns the number of global matrix rows.
void SetValuesInitialized(bool Flag)
long long NumGlobalCols64() const
void SetRelativeThreshold(double Rthresh)
Set relative threshold value.
long long NumGlobalRows64() const
virtual int NumGlobalBlockDiagonals() const
Returns the number of diagonal entries found in the global input graph.
Teuchos::RefCountPtr< Epetra_CrsGraph > L_Graph_
Teuchos::RefCountPtr< Epetra_Map > IlukDomainMap_
const Ifpack_IlukGraph & Graph() const
returns the address of the Ifpack_IlukGraph associated with this factored matrix. ...
Ifpack_ScalingType enumerable type.
Teuchos::RefCountPtr< Epetra_CrsMatrix > U_
int InitAllValues(const Epetra_RowMatrix &A, int MaxNumEntries)
virtual int NumMyBlockDiagonals() const
Returns the number of diagonal entries found in the local input graph.
int SetParameters(const Teuchos::ParameterList ¶meterlist, bool cerr_warning_if_unused=false)
Set parameters using a Teuchos::ParameterList object.
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...
std::ostream & operator<<(std::ostream &os, const Ifpack_CrsRiluk &A)
<< operator will work for Ifpack_CrsRiluk.
const Ifpack_IlukGraph & Graph_
const Epetra_Comm & Comm() const
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
int NumMyCols() const
Returns the number of local matrix columns.
Teuchos::RefCountPtr< Epetra_Map > IlukRowMap_
Teuchos::RefCountPtr< Epetra_MultiVector > OverlapX_
int InitValues(const Epetra_CrsMatrix &A)
Initialize L and U with values from user matrix A.
double GetAbsoluteThreshold()
Get absolute threshold value.
Teuchos::RefCountPtr< Epetra_CrsMatrix > L_
friend std::ostream & operator<<(std::ostream &os, const Ifpack_CrsRiluk &A)
<< operator will work for Ifpack_CrsRiluk.
const Epetra_Comm & Comm_
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
virtual const char * Label() const
const char * Label() const
Returns a character string describing the operator.
int NumGlobalNonzeros() const
Returns the number of nonzero entries in the global graph.
void SetRelaxValue(double RelaxValue)
Set RILU(k) relaxation parameter.
virtual long long NumGlobalBlockDiagonals64() const
Teuchos::RefCountPtr< Epetra_MultiVector > VbrY_
virtual int NumMyDiagonals() const
Returns the number of nonzero diagonal values found in matrix.
const Epetra_CrsMatrix & U() const
Returns the address of the L factor 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...
bool Factored() const
If factor is completed, this query returns true, otherwise it returns false.
int GenerateXY(bool Trans, const Epetra_MultiVector &Xin, const Epetra_MultiVector &Yin, Teuchos::RefCountPtr< Epetra_MultiVector > *Xout, Teuchos::RefCountPtr< Epetra_MultiVector > *Yout) const
long long NumGlobalNonzeros64() const
double GetRelativeThreshold()
Get relative threshold value.
int SetUseTranspose(bool UseTranspose_in)
If set true, transpose of this operator will be applied.
Teuchos::RefCountPtr< Epetra_Vector > D_
Teuchos::RefCountPtr< Epetra_MultiVector > VbrX_
virtual ~Ifpack_CrsRiluk()
Ifpack_CrsRiluk Destructor.
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.
long long IndexBase64() const
const Epetra_Vector & D() const
Returns the address of the D factor associated with this factored matrix.
bool UseTranspose() const
Returns the current UseTranspose setting.
Epetra_CombineMode OverlapMode_
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
Teuchos::RefCountPtr< Epetra_Map > IlukRangeMap_
int Factor()
Compute ILU factors L and U using the specified graph, diagonal perturbation thresholds and relaxatio...
Ifpack_CrsRiluk(const Ifpack_IlukGraph &Graph_in)
Ifpack_CrsRiluk constuctor with variable number of indices per row.