#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. | |
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. | |
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. | |
Teuchos::RCP < Anasazi::SortManager< double > > | locaSort |
Sorting manager to handle the sorting of eigenvalues. | |
Private Member Functions | |
AnasaziStrategy (const AnasaziStrategy &) | |
Private to prohibit copying. | |
AnasaziStrategy & | operator= (const AnasaziStrategy &) |
Private to prohibit copying. |
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):
Definition at line 96 of file LOCA_Eigensolver_AnasaziStrategy.H.
typedef NOX::Abstract::MultiVector LOCA::Eigensolver::AnasaziStrategy::MV [protected] |
typedef LOCA::AnasaziOperator::AbstractStrategy LOCA::Eigensolver::AnasaziStrategy::OP [protected] |
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. |
Definition at line 59 of file LOCA_Eigensolver_AnasaziStrategy.C.
References blksz, eigenParams, globalData, isSymmetric, locaSort, nev, solverParams, and topParams.
LOCA::Eigensolver::AnasaziStrategy::~AnasaziStrategy | ( | ) | [virtual] |
LOCA::Eigensolver::AnasaziStrategy::AnasaziStrategy | ( | const AnasaziStrategy & | ) | [private] |
Private to prohibit copying.
NOX::Abstract::Group::ReturnType LOCA::Eigensolver::AnasaziStrategy::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 | |||
) | [virtual] |
Compute eigenvalues/eigenvectors.
The implementation here the sets up and calls the Anasazi BlockKrylovSchur solver for computing eigenvalues.
Implements LOCA::Eigensolver::AbstractStrategy.
Definition at line 109 of file LOCA_Eigensolver_AnasaziStrategy.C.
References blksz, NOX::Abstract::Vector::createMultiVector(), eigenParams, NOX::Abstract::Group::getX(), globalData, isSymmetric, nev, NOX::Abstract::Group::NotConverged, NOX::Abstract::Group::Ok, solverParams, NOX::Utils::StepperIteration, and topParams.
AnasaziStrategy& LOCA::Eigensolver::AnasaziStrategy::operator= | ( | const AnasaziStrategy & | ) | [private] |
Private to prohibit copying.
Teuchos::RCP<LOCA::GlobalData> LOCA::Eigensolver::AnasaziStrategy::globalData [protected] |
Global data.
Definition at line 140 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy(), and computeEigenvalues().
Teuchos::RCP<LOCA::Parameter::SublistParser> LOCA::Eigensolver::AnasaziStrategy::topParams [protected] |
Parsed parameter list.
Definition at line 143 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy(), and computeEigenvalues().
Teuchos::RCP<Teuchos::ParameterList> LOCA::Eigensolver::AnasaziStrategy::eigenParams [protected] |
Eigensolver parameter list.
Definition at line 152 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy(), and computeEigenvalues().
Teuchos::RCP<Teuchos::ParameterList> LOCA::Eigensolver::AnasaziStrategy::solverParams [protected] |
Linear solver parameter list.
Definition at line 155 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy(), and computeEigenvalues().
int LOCA::Eigensolver::AnasaziStrategy::blksz [protected] |
The block size.
Definition at line 158 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy(), and computeEigenvalues().
int LOCA::Eigensolver::AnasaziStrategy::nev [protected] |
The number of requested eigenvalues.
Definition at line 161 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy(), and computeEigenvalues().
bool LOCA::Eigensolver::AnasaziStrategy::isSymmetric [protected] |
Is problem symmetric.
Definition at line 164 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy(), and computeEigenvalues().
Teuchos::RCP< Anasazi::SortManager<double> > LOCA::Eigensolver::AnasaziStrategy::locaSort [protected] |
Sorting manager to handle the sorting of eigenvalues.
Definition at line 167 of file LOCA_Eigensolver_AnasaziStrategy.H.
Referenced by AnasaziStrategy().