NOX
Development
|
Anasazi eigensolver strategy. More...
#include <LOCA_Eigensolver_AnasaziStrategy.H>
Public Member Functions | |
AnasaziStrategy (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &eigenParams) | |
Constructor. More... | |
virtual | ~AnasaziStrategy () |
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) |
Compute eigenvalues/eigenvectors. More... | |
Public Member Functions inherited from LOCA::Eigensolver::AbstractStrategy | |
AbstractStrategy () | |
Constructor. | |
virtual | ~AbstractStrategy () |
Destructor. | |
Protected Types | |
typedef NOX::Abstract::MultiVector | MV |
Typedef to simplify templating. | |
typedef LOCA::AnasaziOperator::AbstractStrategy | OP |
Typedef to simplify templating. | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data. | |
Teuchos::RCP < LOCA::Parameter::SublistParser > | topParams |
Parsed parameter list. | |
Teuchos::RCP < Teuchos::ParameterList > | eigenParams |
Eigensolver parameter list. | |
Teuchos::RCP < Teuchos::ParameterList > | solverParams |
Linear solver parameter list. | |
int | blksz |
The block size. | |
int | nev |
The number of requested eigenvalues. | |
bool | isSymmetric |
Is problem symmetric. | |
Anasazi eigensolver strategy.
This class implements an eigensolver strategy using the generic Trilinos eigensolver package Anasazi. In particular, this strategy uses the Anasazi::BlockKrylovSchur solver. Since Anasazi is a generic solver, this strategy will work with any group implementation. This strategy references the following parameters passed through the eigenParams
argument to the constructor (this list is passed directly to the Anasazi::BlockKrylovSchulSolMgr solver manager):
LOCA::Eigensolver::AnasaziStrategy::AnasaziStrategy | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, |
const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | eigenParams | ||
) |
Constructor.
global_data | [in] Global data object |
topParams | [in] Parsed top-level parameter list. Used to obtain linear-solver parameters and to instantiate sorting strategy. |
eigenParams | [in] Eigensolver parameters as described above. solver. |
References blksz, eigenParams, Teuchos::ParameterList::get(), LOCA::Parameter::SublistParser::getSublist(), Teuchos::ParameterList::isParameter(), isSymmetric, nev, Teuchos::rcp(), Teuchos::ParameterList::set(), solverParams, and topParams.
|
virtual |
Compute eigenvalues/eigenvectors.
The implementation here the sets up and calls the Anasazi BlockKrylovSchur solver for computing eigenvalues.
Implements LOCA::Eigensolver::AbstractStrategy.
References LOCA::AnasaziOperator::AbstractStrategy::beginPostProcessing(), NOX::Abstract::Vector::createMultiVector(), NOX::Abstract::Group::getX(), LOCA::AnasaziOperator::AbstractStrategy::label(), NOX::Abstract::Group::NotConverged, NOX::Abstract::Group::Ok, LOCA::AnasaziOperator::AbstractStrategy::preProcessSeedVector(), LOCA::AnasaziOperator::AbstractStrategy::rayleighQuotient(), Teuchos::rcp(), NOX::Utils::StepperIteration, and LOCA::AnasaziOperator::AbstractStrategy::transformEigenvalue().