LOCA::Eigensolver::AbstractStrategy Class Reference

Abstract interface class for Eigensolver strategies. More...

#include <LOCA_Eigensolver_AbstractStrategy.H>

Inheritance diagram for LOCA::Eigensolver::AbstractStrategy:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 AbstractStrategy ()
 Constructor.
virtual ~AbstractStrategy ()
 Destructor.
virtual
NOX::Abstract::Group::ReturnType 
computeEigenvalues (NOX::Abstract::Group &group, Teuchos::RCP< std::vector< double > > &evals_r, Teuchos::RCP< std::vector< double > > &evals_i, Teuchos::RCP< NOX::Abstract::MultiVector > &evecs_r, Teuchos::RCP< NOX::Abstract::MultiVector > &evecs_i)=0
 Compute eigenvalues/eigenvectors in group group.

Private Member Functions

 AbstractStrategy (const AbstractStrategy &)
 Private to prohibit copying.
AbstractStrategyoperator= (const AbstractStrategy &)
 Private to prohibit copying.


Detailed Description

Abstract interface class for Eigensolver strategies.

AbstractStrategy defines an abstract interface for eigensolver strategies. It is used by LOCA::Stepper to compute eigenvalues of the steady-state solution after each continuation step.

The interface currently defines one pure virtual method, computeEigenvalues(), to compute the eigenvalues. Derived classes should implement this method for a particular eigensolver strategy. Constructors for derived classes should be of the form:

 class Derived : public AbstractStrategy {
 public:
   Derived(
   const Teuchos::RCP<LOCA::GlobalData>& global_data,
   const Teuchos::RCP<LOCA::Parameter::SublistParser>& topParams,
         const Teuchos::RCP<Teuchos::ParameterList>& eigenParams);
   ...
 };

where global_data is the LOCA global data object, topParams is the parsed top-level parameter list, and eigenParams is a parameter list of eigensolver parameters.

This class and its children follow the Strategy pattern as defined in Erich Gamma, et al. "Design Patterns: Elements of Reusable Object-Oriented Software." Addison Wesley, Boston, MA, 1995.

Definition at line 84 of file LOCA_Eigensolver_AbstractStrategy.H.


Constructor & Destructor Documentation

LOCA::Eigensolver::AbstractStrategy::AbstractStrategy (  )  [inline]

Constructor.

Definition at line 89 of file LOCA_Eigensolver_AbstractStrategy.H.

virtual LOCA::Eigensolver::AbstractStrategy::~AbstractStrategy (  )  [inline, virtual]

Destructor.

Definition at line 92 of file LOCA_Eigensolver_AbstractStrategy.H.

LOCA::Eigensolver::AbstractStrategy::AbstractStrategy ( const AbstractStrategy  )  [private]

Private to prohibit copying.


Member Function Documentation

virtual NOX::Abstract::Group::ReturnType LOCA::Eigensolver::AbstractStrategy::computeEigenvalues ( NOX::Abstract::Group group,
Teuchos::RCP< std::vector< double > > &  evals_r,
Teuchos::RCP< std::vector< double > > &  evals_i,
Teuchos::RCP< NOX::Abstract::MultiVector > &  evecs_r,
Teuchos::RCP< NOX::Abstract::MultiVector > &  evecs_i 
) [pure virtual]

Compute eigenvalues/eigenvectors in group group.

Parameters:
group [in] NOX Group to compute eigenvalues of
evals_r [out] Real eigenvalues
evals_i [out] Imaginary eigenvalues
evecs_r [out] Real eigenvectors
evecs_i [out] Imaginary eigenvectors
Returns:
ReturnType code indicating success or failure

Implemented in LOCA::Eigensolver::AnasaziStrategy, LOCA::Eigensolver::DefaultStrategy, and LOCA::Eigensolver::DGGEVStrategy.

AbstractStrategy& LOCA::Eigensolver::AbstractStrategy::operator= ( const AbstractStrategy  )  [private]

Private to prohibit copying.


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

Generated on Wed Oct 21 14:28:29 2009 for Nonlinear Solver Project by  doxygen 1.5.9