45 #include "Epetra_BlockMap.h" 46 #include "Epetra_Map.h" 47 #include "Epetra_MultiVector.h" 48 #include "Epetra_Vector.h" 49 #include "Epetra_Comm.h" 54 const Epetra_Map& RangeMap,
55 const Epetra_Vector& diag) :
57 DomainMap_(DomainMap),
76 if (X.NumVectors() != Y.NumVectors())
79 for (
int v = 0; v < X.NumVectors(); ++v)
80 for (
int i = 0; i < X.MyLength(); ++i)
81 Y[v][i] =
diag_[i] * X[v][i];
const Epetra_Vector & diag_
Ifpack_DiagPreconditioner(const Epetra_Map &DomainMap, const Epetra_Map &RangeMap, const Epetra_Vector &diag)
ctor
~Ifpack_DiagPreconditioner()
dtor
int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
#define IFPACK_RETURN(ifpack_err)
#define IFPACK_CHK_ERR(ifpack_err)
int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const