43 #ifndef IFPACK_DIAGONALFILTER_H
44 #define IFPACK_DIAGONALFILTER_H
46 #if defined(Ifpack_SHOW_DEPRECATED_WARNINGS)
48 #warning "The Ifpack package is deprecated"
53 #include "Epetra_ConfigDefs.h"
54 #include "Epetra_RowMatrix.h"
55 #include "Epetra_Time.h"
56 #include "Teuchos_RefCountPtr.hpp"
91 double AbsoluteThreshold,
92 double RelativeThreshold);
100 return(
A_->NumMyRowEntries(MyRow, NumEntries));
106 return(
A_->MaxNumEntries());
110 double* Values,
int* Indices)
const;
114 int ierr =
A_->ExtractDiagonalCopy(Diagonal);
121 virtual int Solve(
bool ,
bool ,
bool ,
148 return(
A_->LeftScale(x));
158 return(
A_->RightScale(x));
163 return(
A_->Filled());
178 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
181 return(
A_->NumGlobalNonzeros());
186 return(
A_->NumGlobalRows());
191 return(
A_->NumGlobalCols());
196 return(
A_->NumGlobalDiagonals());
202 return(
A_->NumGlobalNonzeros64());
207 return(
A_->NumGlobalRows64());
212 return(
A_->NumGlobalCols64());
217 return(
A_->NumGlobalDiagonals64());
222 return(
A_->NumMyNonzeros());
227 return(
A_->NumMyRows());
232 return(
A_->NumMyCols());
237 return(
A_->NumMyDiagonals());
242 return(
A_->LowerTriangular());
247 return(
A_->UpperTriangular());
252 return(
A_->RowMatrixRowMap());
257 return(
A_->RowMatrixColMap());
262 return(
A_->RowMatrixImporter());
267 return(
A_->SetUseTranspose(UseTranspose_in));
272 return(
A_->UseTranspose());
288 return(
A_->OperatorDomainMap());
293 return(
A_->OperatorRangeMap());
308 Teuchos::RefCountPtr<Epetra_RowMatrix>
A_;
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