NOX
Development
|
Abstract interface class strategies to save eigenvector/value data. More...
#include <LOCA_SaveEigenData_AbstractStrategy.H>
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. More... | |
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:
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.
|
pure virtual |
Save eigenvalues/eigenvectors.
evals_r | [out] Real eigenvalues |
evals_i | [out] Imaginary eigenvalues |
evecs_r | [out] Real eigenvectors |
evecs_i | [out] Imaginary eigenvectors |
Implemented in LOCA::SaveEigenData::DefaultStrategy.