43 #ifndef IFPACK_SINGLETONFILTER_H
44 #define IFPACK_SINGLETONFILTER_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"
85 virtual int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
92 virtual int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
124 return(
A_->Filled());
137 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
221 return(
A_->RowMatrixImporter());
226 return(
A_->SetUseTranspose(UseTranspose_in));
231 return(
A_->UseTranspose());
276 Teuchos::RefCountPtr<Epetra_RowMatrix>
A_;
298 Teuchos::RefCountPtr<Epetra_Map>
Map_;
const char * Label() const
Ifpack_SingletonFilter(const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix)
Constructor.
virtual bool Filled() const
virtual int NumMyRows() const
int SolveSingletons(const Epetra_MultiVector &RHS, Epetra_MultiVector &LHS)
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
std::vector< int > NumEntries_
virtual int NumMyRowEntries(int MyRow, int &) const
Returns the number of entries in MyRow.
virtual int NumGlobalRows() const
virtual int InvRowSums(Epetra_Vector &) const
virtual const Epetra_Import * RowMatrixImporter() const
virtual int NumMyCols() const
virtual int NumMyDiagonals() const
Teuchos::RefCountPtr< Epetra_Vector > Diagonal_
bool UseTranspose() const
virtual const Epetra_Map & RowMatrixRowMap() const
std::vector< int > SingletonIndex_
const Epetra_BlockMap & Map() const
std::vector< double > Values_
Used in ExtractMyRowCopy, to avoid allocation each time.
virtual long long NumGlobalNonzeros64() const
const Epetra_Map & OperatorRangeMap() const
virtual int Solve(bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int Multiply(bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual int NumMyNonzeros() const
virtual ~Ifpack_SingletonFilter()
Destructor.
const Epetra_Comm & Comm() const
virtual long long NumGlobalRows64() const
char Label_[80]
Label for this object.
virtual int RightScale(const Epetra_Vector &)
std::vector< int > Indices_
Used in ExtractMyRowCopy, to avoid allocation each time.
std::vector< int > Reorder_
virtual int NumGlobalCols() const
virtual int InvColSums(Epetra_Vector &) const
Ifpack_SingletonFilter: Filter based on matrix entries.
const Epetra_Map & OperatorDomainMap() const
virtual const Epetra_Map & RowMatrixColMap() const
virtual int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
int CreateReducedRHS(const Epetra_MultiVector &LHS, const Epetra_MultiVector &RHS, Epetra_MultiVector &ReducedRHS)
virtual long long NumGlobalDiagonals64() const
virtual bool UpperTriangular() const
virtual bool LowerTriangular() const
virtual int LeftScale(const Epetra_Vector &)
virtual int MaxNumEntries() const
Returns the maximum number of entries.
virtual double NormOne() const
virtual int ExtractDiagonalCopy(Epetra_Vector &Diagonal) const
Teuchos::RefCountPtr< Epetra_RowMatrix > A_
Pointer to the matrix to be preconditioned.
virtual int NumGlobalDiagonals() const
Teuchos::RefCountPtr< Epetra_Map > Map_
std::vector< int > InvReorder_
virtual double NormInf() const
int SetUseTranspose(bool UseTranspose_in)
virtual int NumGlobalNonzeros() const
int UpdateLHS(const Epetra_MultiVector &ReducedLHS, Epetra_MultiVector &LHS)
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
virtual long long NumGlobalCols64() const