43 #ifndef IFPACK_DROPFILTER_H 44 #define IFPACK_DROPFILTER_H 47 #include "Epetra_RowMatrix.h" 48 #include "Teuchos_RefCountPtr.hpp" 104 virtual int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
111 virtual int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
125 return(
A_->LeftScale(x));
132 return(
A_->RightScale(x));
137 return(
A_->Filled());
150 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES 224 return(
A_->RowMatrixRowMap());
229 return(
A_->RowMatrixColMap());
234 return(
A_->RowMatrixImporter());
239 return(
A_->SetUseTranspose(useTranspose));
244 return(
A_->UseTranspose());
259 return(
A_->OperatorDomainMap());
264 return(
A_->OperatorRangeMap());
279 Teuchos::RefCountPtr<Epetra_RowMatrix>
A_;
virtual const Epetra_Map & RowMatrixRowMap() const
const Epetra_Comm & Comm() const
virtual double NormInf() const
virtual int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
const Epetra_BlockMap & Map() const
virtual int NumGlobalDiagonals() const
virtual long long NumGlobalRows64() const
virtual const Epetra_Import * RowMatrixImporter() const
virtual int RightScale(const Epetra_Vector &x)
double DropTol_
Drop tolerance.
virtual int MaxNumEntries() const
Returns the maximum number of entries.
Teuchos::RefCountPtr< Epetra_RowMatrix > A_
Pointer to the matrix to be preconditioned.
const Epetra_Map & OperatorRangeMap() const
Ifpack_DropFilter: Filter based on matrix entries.
virtual int InvRowSums(Epetra_Vector &x) const
virtual long long NumGlobalNonzeros64() const
const Epetra_Map & OperatorDomainMap() const
virtual bool Filled() const
virtual double NormOne() const
virtual int Solve(bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int LeftScale(const Epetra_Vector &x)
char Label_[80]
Label for this object.
const char * Label() const
virtual int NumMyCols() const
virtual int Multiply(bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int NumGlobalCols() const
virtual bool LowerTriangular() const
virtual int NumMyRowEntries(int MyRow, int &NumEntries) const
Returns the number of entries in MyRow.
virtual long long NumGlobalCols64() const
virtual int NumMyRows() const
virtual long long NumGlobalDiagonals64() const
virtual bool UpperTriangular() const
int SetUseTranspose(bool useTranspose)
int NumNonzeros_
Number of nonzeros for the dropped matrix.
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int NumMyDiagonals() const
bool UseTranspose() const
virtual int NumGlobalRows() const
int MaxNumEntries_
Maximum entries in each row.
virtual const Epetra_Map & RowMatrixColMap() const
std::vector< double > Values_
Used in ExtractMyRowCopy, to avoid allocation each time.
virtual int ExtractDiagonalCopy(Epetra_Vector &Diagonal) const
virtual int InvColSums(Epetra_Vector &x) const
virtual ~Ifpack_DropFilter()
Destructor.
std::vector< int > NumEntries_
virtual int NumMyNonzeros() const
Ifpack_DropFilter(const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix, double DropTol)
Constructor.
std::vector< int > Indices_
Used in ExtractMyRowCopy, to avoid allocation each time.
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int NumGlobalNonzeros() const