43 #ifndef IFPACK_DROPFILTER_H
44 #define IFPACK_DROPFILTER_H
46 #if defined(Ifpack_SHOW_DEPRECATED_WARNINGS)
48 #warning "The Ifpack package is deprecated"
53 #include "Epetra_RowMatrix.h"
54 #include "Teuchos_RefCountPtr.hpp"
110 virtual int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
117 virtual int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
131 return(
A_->LeftScale(x));
138 return(
A_->RightScale(x));
143 return(
A_->Filled());
156 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
230 return(
A_->RowMatrixRowMap());
235 return(
A_->RowMatrixColMap());
240 return(
A_->RowMatrixImporter());
245 return(
A_->SetUseTranspose(useTranspose));
250 return(
A_->UseTranspose());
265 return(
A_->OperatorDomainMap());
270 return(
A_->OperatorRangeMap());
285 Teuchos::RefCountPtr<Epetra_RowMatrix>
A_;
virtual int InvColSums(Epetra_Vector &x) const
virtual bool Filled() const
virtual int NumMyDiagonals() const
virtual double NormInf() const
const Epetra_Map & OperatorRangeMap() const
virtual int MaxNumEntries() const
Returns the maximum number of entries.
const char * Label() const
const Epetra_BlockMap & Map() const
virtual int NumMyCols() const
virtual long long NumGlobalCols64() const
virtual const Epetra_Map & RowMatrixColMap() const
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int RightScale(const Epetra_Vector &x)
double DropTol_
Drop tolerance.
virtual bool LowerTriangular() const
Teuchos::RefCountPtr< Epetra_RowMatrix > A_
Pointer to the matrix to be preconditioned.
virtual int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
virtual int NumGlobalCols() const
virtual const Epetra_Map & RowMatrixRowMap() const
Ifpack_DropFilter: Filter based on matrix entries.
virtual int NumMyNonzeros() const
virtual int Solve(bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int NumMyRowEntries(int MyRow, int &NumEntries) const
Returns the number of entries in MyRow.
virtual int NumGlobalNonzeros() const
virtual int LeftScale(const Epetra_Vector &x)
char Label_[80]
Label for this object.
virtual long long NumGlobalNonzeros64() const
virtual int NumMyRows() const
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual double NormOne() const
virtual int InvRowSums(Epetra_Vector &x) const
int SetUseTranspose(bool useTranspose)
const Epetra_Comm & Comm() const
const Epetra_Map & OperatorDomainMap() const
int NumNonzeros_
Number of nonzeros for the dropped matrix.
virtual int NumGlobalRows() const
int MaxNumEntries_
Maximum entries in each row.
std::vector< double > Values_
Used in ExtractMyRowCopy, to avoid allocation each time.
virtual long long NumGlobalRows64() const
virtual const Epetra_Import * RowMatrixImporter() const
virtual ~Ifpack_DropFilter()
Destructor.
virtual int NumGlobalDiagonals() const
virtual int Multiply(bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int ExtractDiagonalCopy(Epetra_Vector &Diagonal) const
virtual long long NumGlobalDiagonals64() const
std::vector< int > NumEntries_
virtual bool UpperTriangular() const
Ifpack_DropFilter(const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix, double DropTol)
Constructor.
std::vector< int > Indices_
Used in ExtractMyRowCopy, to avoid allocation each time.
bool UseTranspose() const