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"
67 Ifpack_SparsityFilter(
const Teuchos::RefCountPtr<Epetra_RowMatrix>& Matrix,
68 int AllowedNumEntries,
69 int AllowedBandwidth = -1);
71 virtual ~Ifpack_SparsityFilter() {};
73 virtual inline int NumMyRowEntries(
int MyRow,
int & NumEntries)
const
75 NumEntries = NumEntries_[MyRow];
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());
136#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
139 return(NumNonzeros_);
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
180 return(NumNonzeros_);
210 return(A_->RowMatrixRowMap());
215 return(A_->RowMatrixColMap());
220 return(A_->RowMatrixImporter());
223 int SetUseTranspose(
bool useTranspose)
225 return(A_->SetUseTranspose(useTranspose));
230 return(A_->UseTranspose());
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_;
virtual const Epetra_Comm & Comm() const=0
virtual const char * Label() const=0
virtual const Epetra_Map & OperatorDomainMap() const=0
virtual bool HasNormInf() const=0
virtual const Epetra_Map & OperatorRangeMap() const=0
virtual bool UseTranspose() const=0
virtual int NumMyRows() const=0
virtual int NumMyCols() const=0
virtual int NumGlobalCols() const=0
virtual int NumGlobalNonzeros() const=0
virtual const Epetra_Map & RowMatrixColMap() const=0
virtual const Epetra_Map & RowMatrixRowMap() const=0
virtual int NumMyNonzeros() const=0
virtual int NumMyDiagonals() const=0
virtual int NumGlobalRows() const=0
virtual bool LowerTriangular() const=0
virtual int NumGlobalDiagonals() const=0
virtual int MaxNumEntries() const=0
virtual const Epetra_Import * RowMatrixImporter() const=0
virtual bool UpperTriangular() const=0
virtual double NormOne() const=0
virtual double NormInf() const=0
virtual bool Filled() const=0
virtual const Epetra_BlockMap & Map() const=0