Anasazi Version of the Day
Loading...
Searching...
No Matches
Public Member Functions | List of all members
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 >

Public Member Functions

 EpetraGenOp (const Teuchos::RCP< Epetra_Operator > &AOp, const Teuchos::RCP< 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)
 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_Comm & Comm () const
 Returns the Epetra_Comm communicator associated with this operator.
 
const Epetra_Map & OperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this operator.
 
const Epetra_Map & OperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this operator.
 
- Public Member Functions inherited from Anasazi::Operator< double >
 Operator ()
 Default constructor.
 
virtual ~Operator ()
 Destructor.
 

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.
Examples
BlockKrylovSchur/BlockKrylovSchurEpetraExGenAztecOO.cpp, and BlockKrylovSchur/BlockKrylovSchurEpetraExGenBelos.cpp.

Definition at line 396 of file AnasaziEpetraAdapter.hpp.

Constructor & Destructor Documentation

◆ EpetraGenOp()

Anasazi::EpetraGenOp::EpetraGenOp ( const Teuchos::RCP< Epetra_Operator > &  AOp,
const Teuchos::RCP< 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 308 of file AnasaziEpetraAdapter.cpp.

◆ ~EpetraGenOp()

Anasazi::EpetraGenOp::~EpetraGenOp ( )

Destructor.

Definition at line 315 of file AnasaziEpetraAdapter.cpp.

Member Function Documentation

◆ Apply() [1/2]

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 321 of file AnasaziEpetraAdapter.cpp.

◆ Apply() [2/2]

int Anasazi::EpetraGenOp::Apply ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const

Apply method [inherited from Epetra_Operator class].

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

Definition at line 353 of file AnasaziEpetraAdapter.cpp.

◆ ApplyInverse()

int Anasazi::EpetraGenOp::ApplyInverse ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const

Apply inverse method [inherited from Epetra_Operator class].

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

Definition at line 374 of file AnasaziEpetraAdapter.cpp.

◆ Label()

const char * Anasazi::EpetraGenOp::Label ( ) const
inline

Returns a character string describing the operator.

Definition at line 425 of file AnasaziEpetraAdapter.hpp.

◆ UseTranspose()

bool Anasazi::EpetraGenOp::UseTranspose ( ) const
inline

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

Definition at line 428 of file AnasaziEpetraAdapter.hpp.

◆ SetUseTranspose()

int Anasazi::EpetraGenOp::SetUseTranspose ( bool  )
inline

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

Definition at line 431 of file AnasaziEpetraAdapter.hpp.

◆ HasNormInf()

bool Anasazi::EpetraGenOp::HasNormInf ( ) const
inline

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

Definition at line 434 of file AnasaziEpetraAdapter.hpp.

◆ NormInf()

double Anasazi::EpetraGenOp::NormInf ( ) const
inline

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

Definition at line 437 of file AnasaziEpetraAdapter.hpp.

◆ Comm()

const Epetra_Comm & Anasazi::EpetraGenOp::Comm ( ) const
inline

Returns the Epetra_Comm communicator associated with this operator.

Definition at line 440 of file AnasaziEpetraAdapter.hpp.

◆ OperatorDomainMap()

const Epetra_Map & Anasazi::EpetraGenOp::OperatorDomainMap ( ) const
inline

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

Definition at line 443 of file AnasaziEpetraAdapter.hpp.

◆ OperatorRangeMap()

const Epetra_Map & Anasazi::EpetraGenOp::OperatorRangeMap ( ) const
inline

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

Definition at line 446 of file AnasaziEpetraAdapter.hpp.


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