LOCA::SaveEigenData::AbstractStrategy Class Reference

Abstract interface class strategies to save eigenvector/value data. More...

#include <LOCA_SaveEigenData_AbstractStrategy.H>

Inheritance diagram for LOCA::SaveEigenData::AbstractStrategy:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 AbstractStrategy ()
 Constructor.
virtual ~AbstractStrategy ()
 Destructor.
virtual
NOX::Abstract::Group::ReturnType 
save (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
 Save eigenvalues/eigenvectors.

Private Member Functions

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


Detailed Description

Abstract interface class strategies to save eigenvector/value data.

AbstractStrategy defines an abstract interface for saving eigenvectors and eigenvalues that are computed at each continuation step. This is important because this data is often useful for restarting continuations near bifurcation points and gives the user flexibility in how this data is stored.

The interface currently defines one pure virtual method, save(), to save any eigenvectors or values as specified by the user. Derived classes should implement this method for a particular strategy to save this data, which is usually highly application code dependent. 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 list should also specify which and how many eigenvectors/values to save as defined by the strategy.

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 89 of file LOCA_SaveEigenData_AbstractStrategy.H.


Constructor & Destructor Documentation

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

Constructor.

Definition at line 94 of file LOCA_SaveEigenData_AbstractStrategy.H.

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

Destructor.

Definition at line 97 of file LOCA_SaveEigenData_AbstractStrategy.H.

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

Private to prohibit copying.


Member Function Documentation

virtual NOX::Abstract::Group::ReturnType LOCA::SaveEigenData::AbstractStrategy::save ( 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]

Save eigenvalues/eigenvectors.

Parameters:
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::SaveEigenData::DefaultStrategy.

AbstractStrategy& LOCA::SaveEigenData::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:40 2009 for Nonlinear Solver Project by  doxygen 1.5.9