43 #ifndef IFPACK_DIAG_PRECONDITIONER_H 44 #define IFPACK_DIAG_PRECONDITIONER_H 46 #include "Ifpack_ConfigDefs.h" 47 #include "Epetra_Operator.h" 48 #include "Epetra_Vector.h" 49 class Epetra_BlockMap;
51 class Epetra_MultiVector;
73 const Epetra_Map& RangeMap,
74 const Epetra_Vector& diag);
79 int SetUseTranspose(
bool UseTranspose_in)
81 UseTranspose_ = UseTranspose_in;
85 int Apply(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
87 int ApplyInverse(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
89 double NormInf()
const 94 const char* Label()
const 96 return(
"Ifpack_DiagPreconditioner");
99 bool UseTranspose()
const 101 return(UseTranspose_);
104 bool HasNormInf()
const 109 const Epetra_Comm& Comm()
const 111 return(diag_.Comm());
114 const Epetra_Map& OperatorDomainMap()
const 119 const Epetra_Map& OperatorRangeMap()
const 124 const Epetra_BlockMap& Map()
const 131 const Epetra_Map& DomainMap_;
132 const Epetra_Map& RangeMap_;
133 const Epetra_Vector& diag_;
Ifpack_DiagPreconditioner: a class for diagonal preconditioning.
int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Ifpack_DiagPreconditioner(const Epetra_Map &DomainMap, const Epetra_Map &RangeMap, const Epetra_Vector &diag)
ctor
~Ifpack_DiagPreconditioner()
dtor