43 #ifndef IFPACK_SINGLETONFILTER_H
44 #define IFPACK_SINGLETONFILTER_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"
76 return(NumEntries_[MyRow]);
82 return(MaxNumEntries_);
85 virtual int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
87 virtual int ExtractDiagonalCopy(
Epetra_Vector & Diagonal)
const;
92 virtual int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
122 virtual bool Filled()
const
124 return(A_->Filled());
127 virtual double NormInf()
const
132 virtual double NormOne()
const
137 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
138 virtual int NumGlobalNonzeros()
const
140 return(NumNonzeros_);
143 virtual int NumGlobalRows()
const
148 virtual int NumGlobalCols()
const
153 virtual int NumGlobalDiagonals()
const
159 virtual long long NumGlobalNonzeros64()
const
161 return(NumNonzeros_);
164 virtual long long NumGlobalRows64()
const
169 virtual long long NumGlobalCols64()
const
174 virtual long long NumGlobalDiagonals64()
const
179 virtual int NumMyNonzeros()
const
181 return(NumNonzeros_);
184 virtual int NumMyRows()
const
189 virtual int NumMyCols()
const
194 virtual int NumMyDiagonals()
const
199 virtual bool LowerTriangular()
const
204 virtual bool UpperTriangular()
const
209 virtual const Epetra_Map & RowMatrixRowMap()
const
214 virtual const Epetra_Map & RowMatrixColMap()
const
221 return(A_->RowMatrixImporter());
224 int SetUseTranspose(
bool UseTranspose_in)
226 return(A_->SetUseTranspose(UseTranspose_in));
229 bool UseTranspose()
const
231 return(A_->UseTranspose());
234 bool HasNormInf()
const
259 const char* Label()
const{
276 Teuchos::RefCountPtr<Epetra_RowMatrix> A_;
279 mutable std::vector<int> Indices_;
281 mutable std::vector<double> Values_;
286 std::vector<int> SingletonIndex_;
288 std::vector<int> Reorder_;
289 std::vector<int> InvReorder_;
291 std::vector<int> NumEntries_;
298 Teuchos::RefCountPtr<Epetra_Map> Map_;
300 Teuchos::RefCountPtr<Epetra_Vector> Diagonal_;
Ifpack_SingletonFilter(const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix)
Constructor.
virtual int NumMyRowEntries(int MyRow, int &) const
Returns the number of entries in MyRow.
virtual ~Ifpack_SingletonFilter()
Destructor.
Ifpack_SingletonFilter: Filter based on matrix entries.
virtual int MaxNumEntries() const
Returns the maximum number of entries.