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.

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.


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.


The documentation for this class was generated from the following file:
Generated on Wed May 12 21:41:58 2010 for NOX by  doxygen 1.4.7