NOX Development
Public Member Functions | Protected Attributes | List of all members
LOCA::Epetra::AnasaziOperator::Floquet Class Reference

Anasazi operator for computing generalized eigenvalues using Cayley transformations. More...

#include <LOCA_Epetra_AnasaziOperator_Floquet.H>

Inheritance diagram for LOCA::Epetra::AnasaziOperator::Floquet:
Inheritance graph
[legend]
Collaboration diagram for LOCA::Epetra::AnasaziOperator::Floquet:
Collaboration graph
[legend]

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. More...
 
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 const std::string & label () const =0
 Return name of this operator. More...
 
virtual void apply (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &output) const =0
 Apply the operator to input with the result in output. More...
 
virtual void preProcessSeedVector (NOX::Abstract::MultiVector &)
 Give strategy an opportunit to massage the random seed vector. More...
 
virtual void beginPostProcessing ()
 Hook to precompute info for subsequent repeated calls to tranformEigenvalue and rayleighQuotient. More...
 
virtual void transformEigenvalue (double &ev_r, double &ev_i) const =0
 Transform eigenvalue in place. More...
 
virtual NOX::Abstract::Group::ReturnType rayleighQuotient (NOX::Abstract::Vector &evec_r, NOX::Abstract::Vector &evec_i, double &rq_r, double &rq_i) const =0
 Compute Rayleigh quotient. More...
 

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 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::Groupgrp
 Stores group representing Jacobian and Mass matrix.
 
Teuchos::RCP< LOCA::Epetra::Interface::xyzt > xyztInterface
 Stores interface for space-time periodic formulation.
 

Detailed Description

Anasazi operator for computing generalized eigenvalues using Cayley transformations.

This class implements the LOCA::AnasaziOperator::AbstractStrategy interface for computing generalized eigenvalues $\lambda$ and eigenvectors $z$ of the system

\[
     J z = \lambda M z
*\]

where $J$ is the Jacobian matrix and $M$ is the mass matrix. The eigenvalues are computed using a Cayley transformation, i.e. solving

\[
      (J - \sigma M) z = (J - \mu M) r
  \]

where $\sigma$ is the Cayley pole and $\mu$ 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.

Constructor & Destructor Documentation

◆ Floquet()

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 globalData, grp, NOX::Abstract::Group::Ok, and xyztInterface.

Member Function Documentation

◆ apply()

void LOCA::Epetra::AnasaziOperator::Floquet::apply ( const NOX::Abstract::MultiVector input,
NOX::Abstract::MultiVector output 
) const
virtual

Apply the operator.

Applies the inverse of the shifted operator, i.e., solves

\[
     (J-\omega I)z = M r
\]

for $z$, where $r = \mbox{input}$ and $z = \mbox{output}$.

Implements LOCA::AnasaziOperator::AbstractStrategy.

References NOX::Abstract::MultiVector::clone(), NOX::Epetra::Vector::getEpetraVector(), and NOX::Abstract::MultiVector::numVectors().

◆ label()

const std::string & LOCA::Epetra::AnasaziOperator::Floquet::label ( ) const
virtual

Return name of this operator.

Implements LOCA::AnasaziOperator::AbstractStrategy.

◆ rayleighQuotient()

NOX::Abstract::Group::ReturnType LOCA::Epetra::AnasaziOperator::Floquet::rayleighQuotient ( NOX::Abstract::Vector evec_r,
NOX::Abstract::Vector evec_i,
double &  rq_r,
double &  rq_i 
) const
virtual

◆ transformEigenvalue()

void LOCA::Epetra::AnasaziOperator::Floquet::transformEigenvalue ( double &  ev_r,
double &  ev_i 
) const
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.


The documentation for this class was generated from the following files: