#include <LOCA_Eigensolver_AbstractStrategy.H>
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. | |
AbstractStrategy & | operator= (const AbstractStrategy &) |
Private to prohibit copying. |
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.
LOCA::Eigensolver::AbstractStrategy::AbstractStrategy | ( | ) | [inline] |
virtual LOCA::Eigensolver::AbstractStrategy::~AbstractStrategy | ( | ) | [inline, virtual] |
LOCA::Eigensolver::AbstractStrategy::AbstractStrategy | ( | const AbstractStrategy & | ) | [private] |
Private to prohibit copying.
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
.
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 |
Implemented in LOCA::Eigensolver::AnasaziStrategy, LOCA::Eigensolver::DefaultStrategy, and LOCA::Eigensolver::DGGEVStrategy.
AbstractStrategy& LOCA::Eigensolver::AbstractStrategy::operator= | ( | const AbstractStrategy & | ) | [private] |
Private to prohibit copying.