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

Anasazi operator for computing eigenvalues of the inverse-Jacobian. More...

#include <LOCA_AnasaziOperator_JacobianInverse.H>

Inheritance diagram for LOCA::AnasaziOperator::JacobianInverse:
Inheritance graph
[legend]
Collaboration diagram for LOCA::AnasaziOperator::JacobianInverse:
Collaboration graph
[legend]

Public Member Functions

 JacobianInverse (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.
 
virtual ~JacobianInverse ()
 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 beginPostProcessing ()
 Begin PostProcessing of eigenvalues. 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.
 
Teuchos::RCP< NOX::Abstract::Vectortmp_r
 Stores a temporary vector for computing Rayleigh quotients.
 
Teuchos::RCP< NOX::Abstract::Vectortmp_i
 Stores a temporary vector for computing Rayleigh quotients.
 

Detailed Description

Anasazi operator for computing eigenvalues of the inverse-Jacobian.

This class implements the LOCA::AnasaziOperator::AbstractStrategy interface for computing eigenvalues of the inverse-Jacobian.

Member Function Documentation

◆ apply()

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

Apply the operator.

Computes $\mbox{output} = J^{-1}\mbox{input}$.

Implements LOCA::AnasaziOperator::AbstractStrategy.

◆ beginPostProcessing()

void LOCA::AnasaziOperator::JacobianInverse::beginPostProcessing ( )
virtual

Begin PostProcessing of eigenvalues.

Compute Jacobian matrix once, for use in subsequent repeated calls to rayleighQuotient

Reimplemented from LOCA::AnasaziOperator::AbstractStrategy.

◆ label()

const std::string & LOCA::AnasaziOperator::JacobianInverse::label ( ) const
virtual

Return name of this operator.

Implements LOCA::AnasaziOperator::AbstractStrategy.

◆ rayleighQuotient()

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

Compute Rayleigh quotient.

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

Implements LOCA::AnasaziOperator::AbstractStrategy.

References NOX::Abstract::Vector::clone(), NOX::Abstract::Vector::innerProduct(), NOX::Abstract::Group::Ok, and NOX::ShapeCopy.

◆ transformEigenvalue()

void LOCA::AnasaziOperator::JacobianInverse::transformEigenvalue ( double &  ev_r,
double &  ev_i 
) const
virtual

Transform eigenvalue.

Transforms the given eigenvalue to the eigenvalue of the Jacobian by inverting it.

Implements LOCA::AnasaziOperator::AbstractStrategy.


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