|
Ifpack Package Browser (Single Doxygen Collection)
Development
|
Go to the documentation of this file.
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_;
const Ifpack_IlukGraph & Graph() const
returns the address of the Ifpack_IlukGraph associated with this factored matrix.
Teuchos::RefCountPtr< Epetra_Map > IlukRowMap_
double GetAbsoluteThreshold()
Get absolute threshold value.
Ifpack_CrsRiluk: A class for constructing and using an incomplete lower/upper (ILU) factorization of ...
const Epetra_Comm & Comm() const
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
Teuchos::RefCountPtr< Epetra_CrsGraph > L_Graph_
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.
Teuchos::RefCountPtr< Epetra_CrsMatrix > L_
int NumMyCols() const
Returns the number of local matrix columns.
const Ifpack_IlukGraph & Graph_
virtual int NumGlobalBlockDiagonals() const
Returns the number of diagonal entries found in the global input graph.
virtual int NumMyBlockDiagonals() const
Returns the number of diagonal entries found in the local input graph.
const Epetra_Comm & Comm_
virtual int NumMyDiagonals() const
Returns the number of nonzero diagonal values found in matrix.
const char * Label() const
Returns a character string describing the operator.
int NumGlobalNonzeros() const
Returns the number of nonzero entries in the global graph.
int GenerateXY(bool Trans, const Epetra_MultiVector &Xin, const Epetra_MultiVector &Yin, Teuchos::RefCountPtr< Epetra_MultiVector > *Xout, Teuchos::RefCountPtr< Epetra_MultiVector > *Yout) const
int InitValues(const Epetra_CrsMatrix &A)
Initialize L and U with values from user matrix A.
Teuchos::RefCountPtr< Epetra_MultiVector > VbrY_
Teuchos::RefCountPtr< Epetra_MultiVector > VbrX_
Ifpack_ScalingType enumerable type.
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 GetRelativeThreshold()
Get relative threshold value.
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
virtual long long NumGlobalBlockDiagonals64() const
Ifpack_IlukGraph: A class for constructing level filled graphs for use with ILU(k) class precondition...
const Epetra_CrsMatrix & U() const
Returns the address of the L factor associated with this factored matrix.
friend std::ostream & operator<<(std::ostream &os, const Ifpack_CrsRiluk &A)
<< operator will work for Ifpack_CrsRiluk.
long long IndexBase64() const
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
void SetRelaxValue(double RelaxValue)
Set RILU(k) relaxation parameter.
Epetra_CombineMode OverlapMode_
bool Factored() const
If factor is completed, this query returns true, otherwise it returns false.
Teuchos::RefCountPtr< Epetra_Map > IlukRangeMap_
double GetRelaxValue()
Get RILU(k) relaxation parameter.
bool UseTranspose() const
Returns the current UseTranspose setting.
Teuchos::RefCountPtr< Epetra_Vector > D_
int NumMyRows() const
Returns the number of local matrix rows.
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.
Teuchos::RefCountPtr< Epetra_CrsGraph > U_Graph_
const Epetra_Vector & D() const
Returns the address of the D factor associated with this factored matrix.
int NumGlobalCols() const
Returns the number of global matrix columns.
long long NumGlobalNonzeros64() const
int BlockMap2PointMap(const Epetra_BlockMap &BlockMap, Teuchos::RefCountPtr< Epetra_Map > *PointMap)
std::ostream & operator<<(std::ostream &os, const Ifpack_CrsRiluk &A)
<< operator will work for Ifpack_CrsRiluk.
int SetUseTranspose(bool UseTranspose_in)
If set true, transpose of this operator will be applied.
void SetFactored(bool Flag)
virtual const char * Label() const
Ifpack_CrsRiluk(const Ifpack_IlukGraph &Graph_in)
Ifpack_CrsRiluk constuctor with variable number of indices per row.
int IndexBase() const
Returns the index base for row and column indices for this graph.
int Factor()
Compute ILU factors L and U using the specified graph, diagonal perturbation thresholds and relaxatio...
Teuchos::RefCountPtr< const Epetra_Map > L_RangeMap_
const Epetra_CrsMatrix & L() const
Returns the address of the L factor associated with this factored matrix.
int SetAllocated(bool Flag)
bool HasNormInf() const
Returns false because this class cannot compute an Inf-norm.
int NumGlobalRows() const
Returns the number of global matrix rows.
int NumMyNonzeros() const
Returns the number of nonzero entries in the local graph.
void SetValuesInitialized(bool Flag)
void SetAbsoluteThreshold(double Athresh)
Set absolute threshold value.
void SetRelativeThreshold(double Rthresh)
Set relative threshold value.
double NormInf() const
Returns 0.0 because this class cannot compute Inf-norm.
Epetra_CombineMode GetOverlapMode()
Get overlap mode type.
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 ...
Teuchos::RefCountPtr< const Epetra_Map > U_DomainMap_
Teuchos::RefCountPtr< Epetra_MultiVector > OverlapY_
void SetOverlapMode(Epetra_CombineMode OverlapMode)
Set overlap mode type.
int SetParameters(const Teuchos::ParameterList ¶meterlist, bool cerr_warning_if_unused=false)
Set parameters using a Teuchos::ParameterList object.
int Condest(bool Trans, double &ConditionNumberEstimate) const
Returns the maximum over all the condition number estimate for each local ILU set of factors.
bool ValuesInitialized() const
If values have been initialized, this query returns true, otherwise it returns false.
long long NumGlobalRows64() const
Teuchos::RefCountPtr< Epetra_Map > IlukDomainMap_
Teuchos::RefCountPtr< Epetra_MultiVector > OverlapX_
Teuchos::RefCountPtr< Epetra_CrsMatrix > U_
int InitAllValues(const Epetra_RowMatrix &A, int MaxNumEntries)
int BlockGraph2PointGraph(const Epetra_CrsGraph &BG, Epetra_CrsGraph &PG, bool Upper)
long long NumGlobalCols64() const