43 #ifndef IFPACK_UTILS_H
44 #define IFPACK_UTILS_H
46 #include "Ifpack_ConfigDefs.h"
47 #include "Epetra_Comm.h"
48 #if !( defined(_WIN32) )
69 const int OverlappingLevel);
73 const int OverlappingLevel);
92 const int NumPDEEqns = 1);
104 const bool abs =
false,
105 const int steps = 10);
117 const bool abs =
false,
118 const int steps = 10);
133 int Ifpack_PrintSparsity(
const Epetra_RowMatrix& A,
const char* FileName = 0,
134 const int NumPDEEqns = 1);
145 aval_ = rhs.AbsValue();
148 inline int Index()
const {
152 inline double Value()
const {
156 inline double AbsValue()
const {
160 inline void SetIndex(
const int i)
165 inline void SetValue(
const double val)
168 aval_ = IFPACK_ABS(val_);
173 if (rhs.AbsValue() > AbsValue())
175 else if (rhs.AbsValue() < AbsValue())
177 else if (rhs.Index() < Index())
189 #endif // IFPACK_UTILS_H
int Ifpack_Analyze(const Epetra_RowMatrix &A, const bool Cheap=false, const int NumPDEEqns=1)
Analyzes the basic properties of the input matrix A; see Usage of Ifpack_Analyze()..
int Ifpack_AnalyzeVectorElements(const Epetra_Vector &Diagonal, const bool abs=false, const int steps=10)
Analyzes the distribution of values of the input vector Diagonal.
int Ifpack_AnalyzeMatrixElements(const Epetra_RowMatrix &A, const bool abs=false, const int steps=10)
Analyzes the distribution of values of the input matrix A.
void Ifpack_PrintLine()
Prints a line of `=' on cout.
Epetra_CrsMatrix * Ifpack_CreateOverlappingCrsMatrix(const Epetra_RowMatrix *Matrix, const int OverlappingLevel)
Creates an overlapping Epetra_CrsMatrix. Returns 0 if OverlappingLevel is 0.
void Ifpack_BreakForDebugger(Epetra_Comm &Comm)
Stops the execution of code, so that a debugger can be attached.
int Ifpack_PrintResidual(char *Label, const Epetra_RowMatrix &A, const Epetra_MultiVector &X, const Epetra_MultiVector &Y)
Prints on cout the true residual.
std::string Ifpack_toString(const int &x)
Converts an integer to std::string.