Anasazi::EpetraGenOp Class Reference

Adapter class for creating an operators often used in solving generalized eigenproblems. More...

#include <AnasaziEpetraAdapter.hpp>

Inheritance diagram for Anasazi::EpetraGenOp:

Anasazi::Operator< double > Epetra_Operator List of all members.

Public Member Functions

 EpetraGenOp (const Teuchos::RefCountPtr< Epetra_Operator > &AOp, const Teuchos::RefCountPtr< Epetra_Operator > &MOp, bool isAInverse=true)
 Basic constructor for applying operator $A^{-1}M$ [default] or $AM$.
 ~EpetraGenOp ()
 Destructor.
void Apply (const MultiVec< double > &X, MultiVec< double > &Y) const
 Apply method [inherited from Anasazi::Operator class].
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Apply method [inherited from Epetra_Operator class].
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Apply inverse method [inherited from Epetra_Operator class].
const char * Label () const
 Returns a character string describing the operator.
bool UseTranspose () const
 Returns the current UseTranspose setting [always false for this operator].
int SetUseTranspose (bool UseTranspose)
 If set true, the transpose of this operator will be applied [not functional for this operator].
bool HasNormInf () const
 Returns true if this object can provide an approximate inf-norm [always false for this operator].
double NormInf () const
 Returns the infinity norm of the global matrix [not functional for this operator].
const Epetra_CommComm () const
 Returns the Epetra_Comm communicator associated with this operator.
const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this operator.
const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this operator.

Detailed Description

Adapter class for creating an operators often used in solving generalized eigenproblems.

This class will apply the operation $A^{-1}M$ [default] or $AM$, for the Apply method of the Epetra_Operator / Anasazi::Operator. The Anasazi::EpetraGenOp operator is useful when spectral transformations are used within eigensolvers. For instance, $A^{-1}M$ is a shift and invert spectral transformation commonly used with Anasazi::BlockKrylovSchur to compute the smallest-magnitude eigenvalues for the eigenproblem $Ax = \lambda Mx$.

Note:
The Epetra package performs double-precision arithmetic, so the use of Epetra with Anasazi will only provide a double-precision eigensolver.

Definition at line 286 of file AnasaziEpetraAdapter.hpp.


Constructor & Destructor Documentation

Anasazi::EpetraGenOp::EpetraGenOp const Teuchos::RefCountPtr< Epetra_Operator > &  AOp,
const Teuchos::RefCountPtr< Epetra_Operator > &  MOp,
bool  isAInverse = true
 

Basic constructor for applying operator $A^{-1}M$ [default] or $AM$.

If isAInverse is true this operator will apply $A^{-1}M$, else it will apply $AM$.

Definition at line 280 of file AnasaziEpetraAdapter.cpp.

Anasazi::EpetraGenOp::~EpetraGenOp  ) 
 

Destructor.

Definition at line 287 of file AnasaziEpetraAdapter.cpp.


Member Function Documentation

void Anasazi::EpetraGenOp::Apply const MultiVec< double > &  X,
MultiVec< double > &  Y
const [virtual]
 

Apply method [inherited from Anasazi::Operator class].

This method will apply $A^{-1}M$ or $AM$ to X, returning Y.

Implements Anasazi::Operator< double >.

Definition at line 293 of file AnasaziEpetraAdapter.cpp.

int Anasazi::EpetraGenOp::Apply const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

Apply method [inherited from Epetra_Operator class].

This method will apply $A^{-1}M$ or $AM$ to X, returning Y.

Implements Epetra_Operator.

Definition at line 324 of file AnasaziEpetraAdapter.cpp.

int Anasazi::EpetraGenOp::ApplyInverse const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

Apply inverse method [inherited from Epetra_Operator class].

This method will apply $(A^{-1}M)^{-1}$ or $(AM)^{-1}$ to X, returning Y.

Implements Epetra_Operator.

Definition at line 345 of file AnasaziEpetraAdapter.cpp.

const char* Anasazi::EpetraGenOp::Label  )  const [inline, virtual]
 

Returns a character string describing the operator.

Implements Epetra_Operator.

Definition at line 315 of file AnasaziEpetraAdapter.hpp.

bool Anasazi::EpetraGenOp::UseTranspose  )  const [inline, virtual]
 

Returns the current UseTranspose setting [always false for this operator].

Implements Epetra_Operator.

Definition at line 318 of file AnasaziEpetraAdapter.hpp.

int Anasazi::EpetraGenOp::SetUseTranspose bool  UseTranspose  )  [inline, virtual]
 

If set true, the transpose of this operator will be applied [not functional for this operator].

Implements Epetra_Operator.

Definition at line 321 of file AnasaziEpetraAdapter.hpp.

bool Anasazi::EpetraGenOp::HasNormInf  )  const [inline, virtual]
 

Returns true if this object can provide an approximate inf-norm [always false for this operator].

Implements Epetra_Operator.

Definition at line 324 of file AnasaziEpetraAdapter.hpp.

double Anasazi::EpetraGenOp::NormInf  )  const [inline, virtual]
 

Returns the infinity norm of the global matrix [not functional for this operator].

Implements Epetra_Operator.

Definition at line 327 of file AnasaziEpetraAdapter.hpp.

const Epetra_Comm& Anasazi::EpetraGenOp::Comm  )  const [inline, virtual]
 

Returns the Epetra_Comm communicator associated with this operator.

Implements Epetra_Operator.

Definition at line 330 of file AnasaziEpetraAdapter.hpp.

const Epetra_Map& Anasazi::EpetraGenOp::OperatorDomainMap  )  const [inline, virtual]
 

Returns the Epetra_Map object associated with the domain of this operator.

Implements Epetra_Operator.

Definition at line 333 of file AnasaziEpetraAdapter.hpp.

const Epetra_Map& Anasazi::EpetraGenOp::OperatorRangeMap  )  const [inline, virtual]
 

Returns the Epetra_Map object associated with the range of this operator.

Implements Epetra_Operator.

Definition at line 336 of file AnasaziEpetraAdapter.hpp.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:31:39 2008 for Anasazi by doxygen 1.3.9.1