#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. | |
Private Member Functions | |
AbstractStrategy (const AbstractStrategy &) | |
Private to prohibit copying. | |
AbstractStrategy & | operator= (const AbstractStrategy &) |
Private to prohibit copying. |
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.
LOCA::SaveEigenData::AbstractStrategy::AbstractStrategy | ( | ) | [inline] |
virtual LOCA::SaveEigenData::AbstractStrategy::~AbstractStrategy | ( | ) | [inline, virtual] |
LOCA::SaveEigenData::AbstractStrategy::AbstractStrategy | ( | const AbstractStrategy & | ) | [private] |
Private to prohibit copying.
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.
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.
AbstractStrategy& LOCA::SaveEigenData::AbstractStrategy::operator= | ( | const AbstractStrategy & | ) | [private] |
Private to prohibit copying.