Anasazi::Eigenproblem< ScalarType, MV, OP > Class Template Reference

This class defines the interface required by an eigensolver and status test class to compute solutions to an eigenproblem. More...

#include <AnasaziEigenproblem.hpp>

Inheritance diagram for Anasazi::Eigenproblem< ScalarType, MV, OP >:

[legend]
List of all members.

Public Member Functions

Constructors/Destructor.
 Eigenproblem ()
 Empty constructor.
virtual ~Eigenproblem ()
 Destructor.
Set Methods.
virtual void SetOperator (const Teuchos::RefCountPtr< OP > &Op)=0
 Set the operator for which eigenvalues will be computed.
virtual void SetA (const Teuchos::RefCountPtr< OP > &A)=0
 Set the operator A of the eigenvalue problem $Ax=\lambda Mx$.
virtual void SetM (const Teuchos::RefCountPtr< OP > &M)=0
 Set the operator M of the eigenvalue problem $Ax=\lambda Mx$.
virtual void SetPrec (const Teuchos::RefCountPtr< OP > &Prec)=0
 Set the preconditioner for this eigenvalue problem $Ax=\lambda Mx$.
virtual void SetInitVec (const Teuchos::RefCountPtr< MV > &InitVec)=0
 Set the initial guess.
virtual void SetAuxVec (const Teuchos::RefCountPtr< MV > &AuxVec)=0
 Set auxilliary vectors.
virtual void SetNEV (const int nev)=0
 The number of eigenvalues (NEV) that are requested.
virtual void SetSymmetric (const bool isSym)=0
 Specify the symmetry of the eigenproblem.
virtual ReturnType SetProblem ()=0
 Specify that this eigenproblem is fully defined.
Accessor Methods.
virtual Teuchos::RefCountPtr<
OP > 
GetOperator () const =0
 Get a pointer to the operator for which eigenvalues will be computed.
virtual Teuchos::RefCountPtr<
OP > 
GetA () const =0
 Get a pointer to the operator A of the eigenproblem $AX=\lambda Mx$.
virtual Teuchos::RefCountPtr<
OP > 
GetM () const =0
 Get a pointer to the operator M of the eigenproblem $AX=\lambda Mx$.
virtual Teuchos::RefCountPtr<
OP > 
GetPrec () const =0
 Get a pointer to the preconditioner.
virtual Teuchos::RefCountPtr<
MV > 
GetInitVec () const =0
 Get a pointer to the initial vector.
virtual Teuchos::RefCountPtr<
MV > 
GetAuxVec () const =0
 Get a pointer to the auxilliary vector.
virtual Teuchos::RefCountPtr<
std::vector< ScalarType > > 
GetEvals ()=0
 Get a pointer to the eigenvalues of the operator.
virtual Teuchos::RefCountPtr<
MV > 
GetEvecs ()=0
 Get a pointer to the eigenvectors of the operator.
virtual int GetNEV () const =0
 Get the number of eigenvalues (NEV) that are required by this eigenproblem.
virtual bool IsSymmetric () const =0
 Get the symmetry information for this eigenproblem.
virtual bool IsProblemSet () const =0
 If the problem has been set, this method will return true.
Inner Product Methods.
virtual ReturnType InnerProd (const MV &X, const MV &Y, Teuchos::SerialDenseMatrix< int, ScalarType > &Z) const =0
 Computes inner product as needed by the eigensolver, for orthogonalization purposes.
Norm Methods.
virtual ReturnType MvNorm (const MV &X, std::vector< ScalarType > *normvec) const =0
 Computes the multivector norm as needed by the eigensolver, for orthogonalization purposes.

Detailed Description

template<class ScalarType, class MV, class OP>
class Anasazi::Eigenproblem< ScalarType, MV, OP >

This class defines the interface required by an eigensolver and status test class to compute solutions to an eigenproblem.


Member Function Documentation

template<class ScalarType, class MV, class OP>
virtual Teuchos::RefCountPtr<std::vector<ScalarType> > Anasazi::Eigenproblem< ScalarType, MV, OP >::GetEvals  )  [pure virtual]
 

Get a pointer to the eigenvalues of the operator.

Note:
If the operator is nonsymmetric, the length of this vector is 2*NEV where the real part of eigenvalue j is entry j and the imaginary part is entry j+NEV .

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual Teuchos::RefCountPtr<MV> Anasazi::Eigenproblem< ScalarType, MV, OP >::GetEvecs  )  [pure virtual]
 

Get a pointer to the eigenvectors of the operator.

Note:
If the operator is nonsymmetric, this multivector has 2*NEV columns where the real part of eigenvector j is column j and the imaginary part is column j+NEV .

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual ReturnType Anasazi::Eigenproblem< ScalarType, MV, OP >::InnerProd const MV &  X,
const MV &  Y,
Teuchos::SerialDenseMatrix< int, ScalarType > &  Z
const [pure virtual]
 

Computes inner product as needed by the eigensolver, for orthogonalization purposes.

Note:
This can be different than the MvTransMv method for the multivector class. For example, if there is a mass matrix M, then this might be the M inner product ($x^HMx$)

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual ReturnType Anasazi::Eigenproblem< ScalarType, MV, OP >::MvNorm const MV &  X,
std::vector< ScalarType > *  normvec
const [pure virtual]
 

Computes the multivector norm as needed by the eigensolver, for orthogonalization purposes.

On return, normvec[i] holds the norm of the i-th vector (column) of X.

Note:
This can be different than the MvNorm method for the multivector class. For example, if there is a mass matrix M, then this might be the M-norm ($||x_i||_M$)

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::SetAuxVec const Teuchos::RefCountPtr< MV > &  AuxVec  )  [pure virtual]
 

Set auxilliary vectors.

Note:
This multivector can have any number of columns, and most likely will contain vectors that will be used by the eigensolver to orthogonalize against.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::SetInitVec const Teuchos::RefCountPtr< MV > &  InitVec  )  [pure virtual]
 

Set the initial guess.

Note:
This multivector should have the same number of columns as the blocksize.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::SetOperator const Teuchos::RefCountPtr< OP > &  Op  )  [pure virtual]
 

Set the operator for which eigenvalues will be computed.

Note:
This may be different from the A if a spectral transformation is employed. For example, this operator may apply the operation $(A-\sigma I)^{-1}$ if you are looking for eigenvalues of A around $\sigma$.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual ReturnType Anasazi::Eigenproblem< ScalarType, MV, OP >::SetProblem  )  [pure virtual]
 

Specify that this eigenproblem is fully defined.

Note:
The user MUST call this routine before they send the eigenproblem to any solver!

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::SetSymmetric const bool  isSym  )  [pure virtual]
 

Specify the symmetry of the eigenproblem.

This knowledge may allow the solver to take advantage of the eigenproblems' symmetry. Some computational work can be avoided by setting this properly.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.


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