LOCA::AnasaziOperator::Cayley Class Reference

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

#include <LOCA_AnasaziOperator_Cayley.H>

Inheritance diagram for LOCA::AnasaziOperator::Cayley:

[legend]
Collaboration diagram for LOCA::AnasaziOperator::Cayley:
[legend]
List of all members.

Public Member Functions

 Cayley (NOX::Parameter::List &eigenParams, NOX::Parameter::List &solverParams, NOX::Abstract::Group &grp)
 Constructor.
virtual ~Cayley ()
 Destructor.
virtual NOX::Abstract::Group::ReturnType reset (NOX::Parameter::List &eigenParams, NOX::Parameter::List &solverParams, NOX::Abstract::Group &grp)
 Reset parameters.
virtual const string & label () const
 Return name of this operator.
virtual NOX::Abstract::Group::ReturnType apply (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &output) const
 Apply the operator.
virtual void transformEigenvalue (double &ev_r, double &ev_i) const
 Transform eigenvalue.
virtual NOX::Abstract::Group::ReturnType rayleighQuotient (const NOX::Abstract::Vector &evec_r, const NOX::Abstract::Vector &evec_i, double &rq_r, double &rq_i) const
 Compute Rayleigh quotient.

Protected Attributes

string myLabel
 Name of this operator.
NOX::Parameter::ListeigenParams
 Stores parameters relating to the operator.
NOX::Parameter::ListsolverParams
 Stores linear solver parameters.
LOCA::TimeDependent::AbstractGroupgrp
 Stores group representing Jacobian and Mass matrix.
NOX::Abstract::Vectortmp_r
 Stores a temporary vector for computing Rayleigh quotients.
NOX::Abstract::Vectortmp_i
 Stores a temporary vector for computing Rayleigh quotients.
double sigma
 Stores Cayley pole $\sigma$.
double mu
 Stores Cayley zero $\mu$.

Detailed Description

Anasazi operator for computing generalized eigenvalues using Cayley transformations.

This class implements the LOCA::AnasaziOperator::Generic 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) z \]

where $\sigma$ is the Cayley pole and $\mu$ is the Cayley zero.

The parameters used by this class supplied in the constructor or reset method are:

Also the grp argument to the constructor and reset method must be a child of LOCA::TimeDependent::AbstractGroup for the shift-invert operations.


Constructor & Destructor Documentation

LOCA::AnasaziOperator::Cayley::Cayley NOX::Parameter::List eigenParams,
NOX::Parameter::List solverParams,
NOX::Abstract::Group grp
 

Constructor.

Argument grp must be of type LOCA::TimeDependent::AbstractGroup. See class description for a list of eigenParams.


Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::AnasaziOperator::Cayley::apply const NOX::Abstract::Vector input,
NOX::Abstract::Vector 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::Generic.

NOX::Abstract::Group::ReturnType LOCA::AnasaziOperator::Cayley::rayleighQuotient const NOX::Abstract::Vector evec_r,
const NOX::Abstract::Vector evec_i,
double &  rq_r,
double &  rq_i
const [virtual]
 

Compute Rayleigh quotient.

Computes the Rayleigh quotient $z^T J z / z^T M z$ for the eigenvector $z$.

Implements LOCA::AnasaziOperator::Generic.

NOX::Abstract::Group::ReturnType LOCA::AnasaziOperator::Cayley::reset NOX::Parameter::List eigenParams,
NOX::Parameter::List solverParams,
NOX::Abstract::Group grp
[virtual]
 

Reset parameters.

Argument grp must be of type LOCA::TimeDependent::AbstractGroup. See class description for a list of eigenParams.

Implements LOCA::AnasaziOperator::Generic.

void LOCA::AnasaziOperator::Cayley::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::Generic.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:40:41 2008 for NOX by doxygen 1.3.9.1