43 #ifndef IFPACK_SPARSITYFILTER_H
44 #define IFPACK_SPARSITYFILTER_H
46 #include "Ifpack_ConfigDefs.h"
47 #include "Epetra_RowMatrix.h"
48 #include "Teuchos_RefCountPtr.hpp"
62 int AllowedNumEntries,
63 int AllowedBandwidth = -1);
67 virtual inline int NumMyRowEntries(
int MyRow,
int & NumEntries)
const
69 NumEntries = NumEntries_[MyRow];
73 virtual int MaxNumEntries()
const
75 return(MaxNumEntries_);
78 virtual int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
80 virtual int ExtractDiagonalCopy(
Epetra_Vector & Diagonal)
const;
85 virtual int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
112 return(A_->RightScale(x));
115 virtual bool Filled()
const
117 return(A_->Filled());
120 virtual double NormInf()
const
125 virtual double NormOne()
const
130 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
131 virtual int NumGlobalNonzeros()
const
133 return(NumNonzeros_);
136 virtual int NumGlobalRows()
const
141 virtual int NumGlobalCols()
const
146 virtual int NumGlobalDiagonals()
const
152 virtual long long NumGlobalNonzeros64()
const
154 return(NumNonzeros_);
157 virtual long long NumGlobalRows64()
const
162 virtual long long NumGlobalCols64()
const
167 virtual long long NumGlobalDiagonals64()
const
172 virtual int NumMyNonzeros()
const
174 return(NumNonzeros_);
177 virtual int NumMyRows()
const
182 virtual int NumMyCols()
const
187 virtual int NumMyDiagonals()
const
192 virtual bool LowerTriangular()
const
197 virtual bool UpperTriangular()
const
202 virtual const Epetra_Map & RowMatrixRowMap()
const
204 return(A_->RowMatrixRowMap());
207 virtual const Epetra_Map & RowMatrixColMap()
const
209 return(A_->RowMatrixColMap());
214 return(A_->RowMatrixImporter());
217 int SetUseTranspose(
bool useTranspose)
219 return(A_->SetUseTranspose(useTranspose));
222 bool UseTranspose()
const
224 return(A_->UseTranspose());
227 bool HasNormInf()
const
239 return(A_->OperatorDomainMap());
244 return(A_->OperatorRangeMap());
252 const char* Label()
const{
259 Teuchos::RefCountPtr<Epetra_RowMatrix> A_;
265 int AllowedBandwidth_;
273 mutable std::vector<int> Indices_;
275 mutable std::vector<double> Values_;
280 std::vector<int> NumEntries_;
287 #if defined(Ifpack_SHOW_DEPRECATED_WARNINGS)
289 #warning "The Ifpack package is deprecated"
Ifpack_SparsityFilter: a class to drop based on sparsity.