43 #ifndef IFPACK_SOLVEOBJECT_H 44 #define IFPACK_SOLVEOBJECT_H 46 #include "Epetra_Operator.h" 47 #include "Epetra_CrsMatrix.h" 48 #include "Epetra_Vector.h" 49 #include "Epetra_CombineMode.h" 97 int Solve(
bool Trans,
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
110 int Multiply(
bool Trans,
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
121 int Condest(
bool Trans,
double & ConditionNumberEstimate)
const;
141 const Epetra_CrsMatrix &
L()
const {
return(*
L_);};
144 const Epetra_Vector &
D()
const {
return(*
D_);};
147 const Epetra_CrsMatrix &
U()
const {
return(*
U_);};
179 int Apply(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const {
196 int ApplyInverse(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const {
219 virtual int SetupXY(
bool Trans,
220 const Epetra_MultiVector& Xin,
const Epetra_MultiVector& Yin,
221 Epetra_MultiVector * & Xout, Epetra_MultiVector * & Yout)
const=0;
224 Epetra_CrsMatrix *
L_;
228 Epetra_CrsMatrix *
U_;
237 #endif // IFPACK_SOLVEOBJECT_H
int NumMyNonzeros() const
Returns the number of nonzero entries in the local graph.
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
int SetUseTranspose(bool UseTranspose)
If set true, transpose of this operator will be applied.
Ifpack_OverlapSolveObject: Provides Overlapped Forward/back solve services for Ifpack.
Epetra_CombineMode OverlapMode_
const Epetra_CrsMatrix & U() const
Returns the address of the L factor associated with this factored matrix.
Epetra_CombineMode OverlapMode() const
Returns the overlap mode used to combine terms that are redundantly computed.
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.
double NormInf() const
Returns 0.0 because this class cannot compute Inf-norm.
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...
const Epetra_Comm & Comm_
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
virtual ~Ifpack_OverlapSolveObject()
Ifpack_OverlapSolveObject Destructor.
virtual int SetupXY(bool Trans, const Epetra_MultiVector &Xin, const Epetra_MultiVector &Yin, Epetra_MultiVector *&Xout, Epetra_MultiVector *&Yout) const =0
const char * Label() const
Returns a character string describing the operator.
bool UseTranspose() const
Returns the current UseTranspose setting.
const Epetra_CrsMatrix & L() const
Returns the address of the L factor associated with this factored matrix.
Ifpack_OverlapSolveObject(char *Label, const Epetra_Comm &Comm)
Constructor.
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 SetUpperOperator(Epetra_CrsMatrix *U, bool UseUTrans)
Define the operator to be used for the upper triangle.
int NumGlobalNonzeros() const
Returns the number of nonzero entries in the global graph.
const Epetra_Vector & D() const
Returns the address of the D factor associated with this factored matrix.
bool HasNormInf() const
Returns false because this class cannot compute an Inf-norm.
void SetOverlapMode(Epetra_CombineMode OverlapMode)
Generate Ifpack_OverlapGraph object using current settings.
const Epetra_Comm & Comm() const
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
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 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 E...
int Condest(bool Trans, double &ConditionNumberEstimate) const
Returns the maximum over all the condition number estimate for each local ILU set of factors...