43 #ifndef IFPACK_SPARSITYFILTER_H
44 #define IFPACK_SPARSITYFILTER_H
46 #if defined(Ifpack_SHOW_DEPRECATED_WARNINGS)
48 #warning "The Ifpack package is deprecated"
52 #include "Ifpack_ConfigDefs.h"
53 #include "Epetra_RowMatrix.h"
54 #include "Teuchos_RefCountPtr.hpp"
68 int AllowedNumEntries,
69 int AllowedBandwidth = -1);
73 virtual inline int NumMyRowEntries(
int MyRow,
int & NumEntries)
const
75 NumEntries = NumEntries_[MyRow];
79 virtual int MaxNumEntries()
const
81 return(MaxNumEntries_);
84 virtual int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
86 virtual int ExtractDiagonalCopy(
Epetra_Vector & Diagonal)
const;
91 virtual int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
118 return(A_->RightScale(x));
121 virtual bool Filled()
const
123 return(A_->Filled());
126 virtual double NormInf()
const
131 virtual double NormOne()
const
136 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
137 virtual int NumGlobalNonzeros()
const
139 return(NumNonzeros_);
142 virtual int NumGlobalRows()
const
147 virtual int NumGlobalCols()
const
152 virtual int NumGlobalDiagonals()
const
158 virtual long long NumGlobalNonzeros64()
const
160 return(NumNonzeros_);
163 virtual long long NumGlobalRows64()
const
168 virtual long long NumGlobalCols64()
const
173 virtual long long NumGlobalDiagonals64()
const
178 virtual int NumMyNonzeros()
const
180 return(NumNonzeros_);
183 virtual int NumMyRows()
const
188 virtual int NumMyCols()
const
193 virtual int NumMyDiagonals()
const
198 virtual bool LowerTriangular()
const
203 virtual bool UpperTriangular()
const
208 virtual const Epetra_Map & RowMatrixRowMap()
const
210 return(A_->RowMatrixRowMap());
213 virtual const Epetra_Map & RowMatrixColMap()
const
215 return(A_->RowMatrixColMap());
220 return(A_->RowMatrixImporter());
223 int SetUseTranspose(
bool useTranspose)
225 return(A_->SetUseTranspose(useTranspose));
228 bool UseTranspose()
const
230 return(A_->UseTranspose());
233 bool HasNormInf()
const
245 return(A_->OperatorDomainMap());
250 return(A_->OperatorRangeMap());
258 const char* Label()
const{
265 Teuchos::RefCountPtr<Epetra_RowMatrix> A_;
271 int AllowedBandwidth_;
279 mutable std::vector<int> Indices_;
281 mutable std::vector<double> Values_;
286 std::vector<int> NumEntries_;
Ifpack_SparsityFilter: a class to drop based on sparsity.