Ifpack Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
Ifpack_DropFilter Class Reference

Ifpack_DropFilter: Filter based on matrix entries. More...

#include <Ifpack_DropFilter.h>

Inheritance diagram for Ifpack_DropFilter:
Inheritance graph
[legend]

Public Member Functions

 Ifpack_DropFilter (const Teuchos::RefCountPtr< Epetra_RowMatrix > &Matrix, double DropTol)
 Constructor. More...
 
virtual ~Ifpack_DropFilter ()
 Destructor. More...
 
virtual int NumMyRowEntries (int MyRow, int &NumEntries) const
 Returns the number of entries in MyRow. More...
 
virtual int MaxNumEntries () const
 Returns the maximum number of entries. More...
 
virtual int ExtractMyRowCopy (int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
 
virtual int ExtractDiagonalCopy (Epetra_Vector &Diagonal) const
 
virtual int Multiply (bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
virtual int Solve (bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
virtual int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
virtual int InvRowSums (Epetra_Vector &x) const
 
virtual int LeftScale (const Epetra_Vector &x)
 
virtual int InvColSums (Epetra_Vector &x) const
 
virtual int RightScale (const Epetra_Vector &x)
 
virtual bool Filled () const
 
virtual double NormInf () const
 
virtual double NormOne () const
 
virtual int NumGlobalNonzeros () const
 
virtual int NumGlobalRows () const
 
virtual int NumGlobalCols () const
 
virtual int NumGlobalDiagonals () const
 
virtual long long NumGlobalNonzeros64 () const
 
virtual long long NumGlobalRows64 () const
 
virtual long long NumGlobalCols64 () const
 
virtual long long NumGlobalDiagonals64 () const
 
virtual int NumMyNonzeros () const
 
virtual int NumMyRows () const
 
virtual int NumMyCols () const
 
virtual int NumMyDiagonals () const
 
virtual bool LowerTriangular () const
 
virtual bool UpperTriangular () const
 
virtual const Epetra_MapRowMatrixRowMap () const
 
virtual const Epetra_MapRowMatrixColMap () const
 
virtual const Epetra_ImportRowMatrixImporter () const
 
int SetUseTranspose (bool useTranspose)
 
bool UseTranspose () const
 
bool HasNormInf () const
 
const Epetra_CommComm () const
 
const Epetra_MapOperatorDomainMap () const
 
const Epetra_MapOperatorRangeMap () const
 
const Epetra_BlockMapMap () const
 
const char * Label () const
 

Private Attributes

Teuchos::RefCountPtr
< Epetra_RowMatrix
A_
 Pointer to the matrix to be preconditioned. More...
 
double DropTol_
 Drop tolerance. More...
 
int MaxNumEntries_
 Maximum entries in each row. More...
 
int MaxNumEntriesA_
 
int NumRows_
 
int NumNonzeros_
 Number of nonzeros for the dropped matrix. More...
 
std::vector< int > Indices_
 Used in ExtractMyRowCopy, to avoid allocation each time. More...
 
std::vector< double > Values_
 Used in ExtractMyRowCopy, to avoid allocation each time. More...
 
char Label_ [80]
 Label for this object. More...
 
std::vector< int > NumEntries_
 

Detailed Description

Ifpack_DropFilter: Filter based on matrix entries.

Ifpack_DropFilter enables the dropping of all elements whose absolute value is below a specified threshold.

A typical use is as follows:

Teuchos::RefCountPtr<Epetra_RowMatrix> A;
// first localize the matrix
// drop all elements below this value
double DropTol = 1e-5;
// now create the matrix, elements below DropTol are
// not included in calls to ExtractMyRowCopy(), Multiply()
// and Apply()
Ifpack_DropFilter DropA(LocalA,DropTol)

It is supposed that Ifpack_DropFilter is used on localized matrices.

Author
Marzio Sala, SNL 9214.

Last modified: Oct-04.

Definition at line 87 of file Ifpack_DropFilter.h.

Constructor & Destructor Documentation

Ifpack_DropFilter::Ifpack_DropFilter ( const Teuchos::RefCountPtr< Epetra_RowMatrix > &  Matrix,
double  DropTol 
)

Constructor.

Definition at line 53 of file Ifpack_DropFilter.cpp.

virtual Ifpack_DropFilter::~Ifpack_DropFilter ( )
inlinevirtual

Destructor.

Definition at line 95 of file Ifpack_DropFilter.h.

Member Function Documentation

virtual int Ifpack_DropFilter::NumMyRowEntries ( int  MyRow,
int &  NumEntries 
) const
inlinevirtual

Returns the number of entries in MyRow.

Implements Epetra_RowMatrix.

Definition at line 98 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::MaxNumEntries ( ) const
inlinevirtual

Returns the maximum number of entries.

Implements Epetra_RowMatrix.

Definition at line 105 of file Ifpack_DropFilter.h.

int Ifpack_DropFilter::ExtractMyRowCopy ( int  MyRow,
int  Length,
int &  NumEntries,
double *  Values,
int *  Indices 
) const
virtual

Implements Epetra_RowMatrix.

Definition at line 102 of file Ifpack_DropFilter.cpp.

int Ifpack_DropFilter::ExtractDiagonalCopy ( Epetra_Vector Diagonal) const
virtual

Implements Epetra_RowMatrix.

Definition at line 137 of file Ifpack_DropFilter.cpp.

int Ifpack_DropFilter::Multiply ( bool  TransA,
const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
virtual

Implements Epetra_RowMatrix.

Definition at line 145 of file Ifpack_DropFilter.cpp.

int Ifpack_DropFilter::Solve ( bool  Upper,
bool  Trans,
bool  UnitDiagonal,
const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
virtual

Implements Epetra_RowMatrix.

Definition at line 187 of file Ifpack_DropFilter.cpp.

int Ifpack_DropFilter::Apply ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
virtual

Implements Epetra_Operator.

Definition at line 195 of file Ifpack_DropFilter.cpp.

int Ifpack_DropFilter::ApplyInverse ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
virtual

Implements Epetra_Operator.

Definition at line 203 of file Ifpack_DropFilter.cpp.

int Ifpack_DropFilter::InvRowSums ( Epetra_Vector x) const
virtual

Implements Epetra_RowMatrix.

Definition at line 209 of file Ifpack_DropFilter.cpp.

virtual int Ifpack_DropFilter::LeftScale ( const Epetra_Vector x)
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 129 of file Ifpack_DropFilter.h.

int Ifpack_DropFilter::InvColSums ( Epetra_Vector x) const
virtual

Implements Epetra_RowMatrix.

Definition at line 215 of file Ifpack_DropFilter.cpp.

virtual int Ifpack_DropFilter::RightScale ( const Epetra_Vector x)
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 136 of file Ifpack_DropFilter.h.

virtual bool Ifpack_DropFilter::Filled ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 141 of file Ifpack_DropFilter.h.

virtual double Ifpack_DropFilter::NormInf ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 146 of file Ifpack_DropFilter.h.

virtual double Ifpack_DropFilter::NormOne ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 151 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumGlobalNonzeros ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 157 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumGlobalRows ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 162 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumGlobalCols ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 167 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumGlobalDiagonals ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 172 of file Ifpack_DropFilter.h.

virtual long long Ifpack_DropFilter::NumGlobalNonzeros64 ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 178 of file Ifpack_DropFilter.h.

virtual long long Ifpack_DropFilter::NumGlobalRows64 ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 183 of file Ifpack_DropFilter.h.

virtual long long Ifpack_DropFilter::NumGlobalCols64 ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 188 of file Ifpack_DropFilter.h.

virtual long long Ifpack_DropFilter::NumGlobalDiagonals64 ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 193 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumMyNonzeros ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 198 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumMyRows ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 203 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumMyCols ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 208 of file Ifpack_DropFilter.h.

virtual int Ifpack_DropFilter::NumMyDiagonals ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 213 of file Ifpack_DropFilter.h.

virtual bool Ifpack_DropFilter::LowerTriangular ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 218 of file Ifpack_DropFilter.h.

virtual bool Ifpack_DropFilter::UpperTriangular ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 223 of file Ifpack_DropFilter.h.

virtual const Epetra_Map& Ifpack_DropFilter::RowMatrixRowMap ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 228 of file Ifpack_DropFilter.h.

virtual const Epetra_Map& Ifpack_DropFilter::RowMatrixColMap ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 233 of file Ifpack_DropFilter.h.

virtual const Epetra_Import* Ifpack_DropFilter::RowMatrixImporter ( ) const
inlinevirtual

Implements Epetra_RowMatrix.

Definition at line 238 of file Ifpack_DropFilter.h.

int Ifpack_DropFilter::SetUseTranspose ( bool  useTranspose)
inlinevirtual

Implements Epetra_Operator.

Definition at line 243 of file Ifpack_DropFilter.h.

bool Ifpack_DropFilter::UseTranspose ( ) const
inlinevirtual

Implements Epetra_Operator.

Definition at line 248 of file Ifpack_DropFilter.h.

bool Ifpack_DropFilter::HasNormInf ( ) const
inlinevirtual

Implements Epetra_Operator.

Definition at line 253 of file Ifpack_DropFilter.h.

const Epetra_Comm& Ifpack_DropFilter::Comm ( ) const
inlinevirtual

Implements Epetra_Operator.

Definition at line 258 of file Ifpack_DropFilter.h.

const Epetra_Map& Ifpack_DropFilter::OperatorDomainMap ( ) const
inlinevirtual

Implements Epetra_Operator.

Definition at line 263 of file Ifpack_DropFilter.h.

const Epetra_Map& Ifpack_DropFilter::OperatorRangeMap ( ) const
inlinevirtual

Implements Epetra_Operator.

Definition at line 268 of file Ifpack_DropFilter.h.

const Epetra_BlockMap& Ifpack_DropFilter::Map ( ) const
inlinevirtual

Implements Epetra_SrcDistObject.

Definition at line 273 of file Ifpack_DropFilter.h.

const char* Ifpack_DropFilter::Label ( ) const
inlinevirtual

Implements Epetra_Operator.

Definition at line 278 of file Ifpack_DropFilter.h.

Member Data Documentation

Teuchos::RefCountPtr<Epetra_RowMatrix> Ifpack_DropFilter::A_
private

Pointer to the matrix to be preconditioned.

Definition at line 285 of file Ifpack_DropFilter.h.

double Ifpack_DropFilter::DropTol_
private

Drop tolerance.

Definition at line 287 of file Ifpack_DropFilter.h.

int Ifpack_DropFilter::MaxNumEntries_
private

Maximum entries in each row.

Definition at line 289 of file Ifpack_DropFilter.h.

int Ifpack_DropFilter::MaxNumEntriesA_
private

Definition at line 290 of file Ifpack_DropFilter.h.

int Ifpack_DropFilter::NumRows_
private

Definition at line 291 of file Ifpack_DropFilter.h.

int Ifpack_DropFilter::NumNonzeros_
private

Number of nonzeros for the dropped matrix.

Definition at line 294 of file Ifpack_DropFilter.h.

std::vector<int> Ifpack_DropFilter::Indices_
mutableprivate

Used in ExtractMyRowCopy, to avoid allocation each time.

Definition at line 297 of file Ifpack_DropFilter.h.

std::vector<double> Ifpack_DropFilter::Values_
mutableprivate

Used in ExtractMyRowCopy, to avoid allocation each time.

Definition at line 299 of file Ifpack_DropFilter.h.

char Ifpack_DropFilter::Label_[80]
private

Label for this object.

Definition at line 301 of file Ifpack_DropFilter.h.

std::vector<int> Ifpack_DropFilter::NumEntries_
private

Definition at line 302 of file Ifpack_DropFilter.h.


The documentation for this class was generated from the following files: