43 #ifndef IFPACK_SPARSITYFILTER_H
44 #define IFPACK_SPARSITYFILTER_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"
68 int AllowedNumEntries,
69 int AllowedBandwidth = -1);
84 virtual int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
91 virtual int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
118 return(
A_->RightScale(x));
123 return(
A_->Filled());
136 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
210 return(
A_->RowMatrixRowMap());
215 return(
A_->RowMatrixColMap());
220 return(
A_->RowMatrixImporter());
225 return(
A_->SetUseTranspose(useTranspose));
230 return(
A_->UseTranspose());
245 return(
A_->OperatorDomainMap());
250 return(
A_->OperatorRangeMap());
265 Teuchos::RefCountPtr<Epetra_RowMatrix>
A_;
virtual int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
virtual int NumMyNonzeros() const
int AllowedEntries_
Maximum allowed entries per row.
const Epetra_Comm & Comm() const
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual bool LowerTriangular() const
virtual const Epetra_Map & RowMatrixColMap() const
char Label_[80]
Label for this object.
std::vector< int > Indices_
Used in ExtractMyRowCopy, to avoid allocation each time.
virtual int ExtractDiagonalCopy(Epetra_Vector &Diagonal) const
virtual long long NumGlobalCols64() const
virtual long long NumGlobalNonzeros64() const
virtual const Epetra_Map & RowMatrixRowMap() const
virtual double NormOne() const
virtual int InvRowSums(Epetra_Vector &) const
int MaxNumEntries_
Maximum entries in each row.
virtual int NumGlobalRows() const
virtual bool Filled() const
const Epetra_Map & OperatorRangeMap() const
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
std::vector< double > Values_
Used in ExtractMyRowCopy, to avoid allocation each time.
const Epetra_Map & OperatorDomainMap() const
virtual int LeftScale(const Epetra_Vector &)
virtual int MaxNumEntries() const
virtual long long NumGlobalRows64() const
virtual int Multiply(bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int NumMyRowEntries(int MyRow, int &NumEntries) const
Ifpack_SparsityFilter(const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix, int AllowedNumEntries, int AllowedBandwidth=-1)
virtual int NumGlobalDiagonals() const
virtual long long NumGlobalDiagonals64() const
virtual int NumMyDiagonals() const
virtual int NumMyCols() const
virtual int InvColSums(Epetra_Vector &) const
virtual int RightScale(const Epetra_Vector &x)
virtual ~Ifpack_SparsityFilter()
const Epetra_BlockMap & Map() const
virtual int NumGlobalCols() const
virtual bool UpperTriangular() const
virtual const Epetra_Import * RowMatrixImporter() const
virtual double NormInf() const
int SetUseTranspose(bool useTranspose)
std::vector< int > NumEntries_
virtual int NumMyRows() const
bool UseTranspose() const
int NumNonzeros_
Number of nonzeros for the dropped matrix.
const char * Label() const
Teuchos::RefCountPtr< Epetra_RowMatrix > A_
Pointer to the matrix to be preconditioned.
Ifpack_SparsityFilter: a class to drop based on sparsity.
virtual int NumGlobalNonzeros() const
int AllowedBandwidth_
Maximum allowed bandwidth.
virtual int Solve(bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const