NOX
Development
|
Anasazi operator for computing generalized eigenvalues using Cayley transformations. More...
#include <LOCA_Epetra_AnasaziOperator_Floquet.H>
Public Member Functions | |
Floquet (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &eigenParams, const Teuchos::RCP< Teuchos::ParameterList > &solverParams, const Teuchos::RCP< NOX::Abstract::Group > &grp) | |
Constructor. More... | |
virtual | ~Floquet () |
Destructor. | |
virtual const std::string & | label () const |
Return name of this operator. | |
virtual void | apply (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &output) const |
Apply the operator. More... | |
virtual void | transformEigenvalue (double &ev_r, double &ev_i) const |
Transform eigenvalue. More... | |
virtual NOX::Abstract::Group::ReturnType | rayleighQuotient (NOX::Abstract::Vector &evec_r, NOX::Abstract::Vector &evec_i, double &rq_r, double &rq_i) const |
Compute Rayleigh quotient. More... | |
Public Member Functions inherited from LOCA::AnasaziOperator::AbstractStrategy | |
AbstractStrategy () | |
Constructor. | |
virtual | ~AbstractStrategy () |
Destructor. | |
virtual void | preProcessSeedVector (NOX::Abstract::MultiVector &) |
Give strategy an opportunit to massage the random seed vector. | |
virtual void | beginPostProcessing () |
Hook to precompute info for subsequent repeated calls to tranformEigenvalue and rayleighQuotient. | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data. | |
std::string | myLabel |
Name of this operator. | |
Teuchos::RCP < Teuchos::ParameterList > | eigenParams |
Stores parameters relating to the operator. | |
Teuchos::RCP < Teuchos::ParameterList > | solverParams |
Stores linear solver parameters. | |
Teuchos::RCP < NOX::Abstract::Group > | grp |
Stores group representing Jacobian and Mass matrix. | |
Teuchos::RCP < LOCA::Epetra::Interface::xyzt > | xyztInterface |
Stores interface for space-time periodic formulation. | |
Anasazi operator for computing generalized eigenvalues using Cayley transformations.
This class implements the LOCA::AnasaziOperator::AbstractStrategy interface for computing generalized eigenvalues and eigenvectors of the system
where is the Jacobian matrix and is the mass matrix. The eigenvalues are computed using a Cayley transformation, i.e. solving
where is the Cayley pole and is the Cayley zero.
The parameters used by this class supplied in the constructor are:
Also the grp argument to the constructor must be a child of LOCA::TimeDependent::AbstractGroup for the shift-invert operations.
LOCA::Epetra::AnasaziOperator::Floquet::Floquet | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, |
const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | eigenParams, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | solverParams, | ||
const Teuchos::RCP< NOX::Abstract::Group > & | grp | ||
) |
Constructor.
Argument grp must be of type LOCA::TimeDependent::AbstractGroup. See class description for a list of eigenParams.
References NOX::Abstract::Group::computeJacobian(), NOX::Epetra::Group::getRequiredInterface(), globalData, grp, LOCA::GlobalData::locaErrorCheck, NOX::Abstract::Group::Ok, and xyztInterface.
|
virtual |
Apply the operator.
Applies the inverse of the shifted operator, i.e., solves
for , where and .
Implements LOCA::AnasaziOperator::AbstractStrategy.
References NOX::Abstract::MultiVector::clone(), Teuchos::RCP< T >::get(), NOX::Epetra::Vector::getEpetraVector(), and NOX::Abstract::MultiVector::numVectors().
|
virtual |
Compute Rayleigh quotient.
Computes the Rayleigh quotient for the eigenvector .
Implements LOCA::AnasaziOperator::AbstractStrategy.
References NOX::Abstract::MultiVector::clone(), NOX::Abstract::Vector::createMultiVector(), NOX::DeepCopy, Teuchos::RCP< T >::get(), NOX::Abstract::Vector::innerProduct(), NOX::Abstract::Group::Ok, and NOX::ShapeCopy.
|
virtual |
Transform eigenvalue.
Transforms the given eigenvalue to the eigenvalue of the Jacobian-mass matrix system by shifting and inverting it.
Implements LOCA::AnasaziOperator::AbstractStrategy.