43 #ifndef IFPACK_DIAGONALFILTER_H
44 #define IFPACK_DIAGONALFILTER_H
47 #include "Epetra_ConfigDefs.h"
48 #include "Epetra_RowMatrix.h"
49 #include "Epetra_Time.h"
50 #include "Teuchos_RefCountPtr.hpp"
85 double AbsoluteThreshold,
86 double RelativeThreshold);
94 return(
A_->NumMyRowEntries(MyRow, NumEntries));
100 return(
A_->MaxNumEntries());
104 double* Values,
int* Indices)
const;
108 int ierr =
A_->ExtractDiagonalCopy(Diagonal);
115 virtual int Solve(
bool ,
bool ,
bool ,
142 return(
A_->LeftScale(x));
152 return(
A_->RightScale(x));
157 return(
A_->Filled());
172 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
175 return(
A_->NumGlobalNonzeros());
180 return(
A_->NumGlobalRows());
185 return(
A_->NumGlobalCols());
190 return(
A_->NumGlobalDiagonals());
196 return(
A_->NumGlobalNonzeros64());
201 return(
A_->NumGlobalRows64());
206 return(
A_->NumGlobalCols64());
211 return(
A_->NumGlobalDiagonals64());
216 return(
A_->NumMyNonzeros());
221 return(
A_->NumMyRows());
226 return(
A_->NumMyCols());
231 return(
A_->NumMyDiagonals());
236 return(
A_->LowerTriangular());
241 return(
A_->UpperTriangular());
246 return(
A_->RowMatrixRowMap());
251 return(
A_->RowMatrixColMap());
256 return(
A_->RowMatrixImporter());
261 return(
A_->SetUseTranspose(UseTranspose_in));
266 return(
A_->UseTranspose());
282 return(
A_->OperatorDomainMap());
287 return(
A_->OperatorRangeMap());
302 Teuchos::RefCountPtr<Epetra_RowMatrix>
A_;
317 #if defined(Ifpack_SHOW_DEPRECATED_WARNINGS)
319 #warning "The Ifpack package is deprecated"
virtual long long NumGlobalCols64() const
std::vector< int > pos_
Stores the position of the diagonal element, or -1 if not present.
virtual int NumGlobalRows() const
const Epetra_Comm & Comm() const
Teuchos::RefCountPtr< Epetra_RowMatrix > A_
Pointer to the matrix to be filtered.
virtual const Epetra_Import * RowMatrixImporter() const
virtual double NormInf() const
Not implemented for efficiency reasons.
virtual bool UpperTriangular() const
virtual bool LowerTriangular() const
virtual int InvColSums(Epetra_Vector &) const
virtual int NumMyCols() const
int SetUseTranspose(bool UseTranspose_in)
virtual bool Filled() const
virtual int RightScale(const Epetra_Vector &x)
virtual long long NumGlobalNonzeros64() const
double RelativeThreshold_
Multiplies A(i,i) by this value.
Ifpack_DiagonalFilter: Filter to modify the diagonal entries of a given Epetra_RowMatrix.
virtual const Epetra_Map & RowMatrixColMap() const
virtual int NumMyRows() const
const Epetra_Map & OperatorDomainMap() const
virtual int ExtractDiagonalCopy(Epetra_Vector &Diagonal) const
const Epetra_Map & OperatorRangeMap() const
virtual int NumMyDiagonals() const
virtual long long NumGlobalRows64() const
virtual int NumGlobalDiagonals() const
virtual int MaxNumEntries() const
Returns the maximum number of entries.
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int Solve(bool, bool, bool, const Epetra_MultiVector &, Epetra_MultiVector &) const
virtual int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
virtual int NumGlobalNonzeros() const
virtual int Multiply(bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual ~Ifpack_DiagonalFilter()
Destructor.
virtual int NumMyRowEntries(int MyRow, int &NumEntries) const
Returns the number of entries in MyRow.
const Epetra_BlockMap & Map() const
virtual const Epetra_Map & RowMatrixRowMap() const
virtual int LeftScale(const Epetra_Vector &x)
Ifpack_DiagonalFilter(const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix, double AbsoluteThreshold, double RelativeThreshold)
Constructor.
const char * Label() const
bool HasNormInf() const
Not implemented for efficiency reasons.
bool UseTranspose() const
virtual int InvRowSums(Epetra_Vector &) const
#define IFPACK_RETURN(ifpack_err)
double AbsoluteThreshold_
This value (times the sgn(A(i,i)) is added to the diagonal elements.
virtual int ApplyInverse(const Epetra_MultiVector &, Epetra_MultiVector &) const
#define IFPACK_CHK_ERR(ifpack_err)
virtual int NumMyNonzeros() const
virtual double NormOne() const
Not implemented for efficiency reasons.
std::vector< double > val_
Stores as additional diagonal contribution due to the filter.
virtual int NumGlobalCols() const
virtual long long NumGlobalDiagonals64() const