LOCA::LAPACK::Group Class Reference

Extension of the NOX::LAPACK::Group to LOCA. More...

#include <LOCA_LAPACK_Group.H>

Inheritance diagram for LOCA::LAPACK::Group:

[legend]
Collaboration diagram for LOCA::LAPACK::Group:
[legend]
List of all members.

Public Member Functions

 Group (LOCA::LAPACK::Interface &i, bool hasMassMat=false)
 Constructor.
 Group (NOX::Parameter::List &params, LOCA::LAPACK::Interface &i, bool hasMassMat=false)
 Constructor with parameter list.
 Group (LOCA::LAPACK::Interface &i, int m, int n, int ma, int na, bool hasMassMat=false)
 Constructor with used and allocated dimensions of matrices.
 Group (NOX::Parameter::List &params, LOCA::LAPACK::Interface &i, int m, int n, int ma, int na, bool hasMassMat=false)
 Constructor with parameter list and with used, allocated dims.
 Group (const Group &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 ~Group ()
 Destructor.
LOCA::LAPACK::Groupoperator= (const LOCA::LAPACK::Group &source)
 Assignment operator.
void printSolution (const NOX::LAPACK::Vector &x_, const double conParam) const
 Print out a vector and a parameter.
virtual NOX::Abstract::Group::ReturnType applyMassMatrix (const NOX::LAPACK::Vector &input, NOX::LAPACK::Vector &result) const
 LAPACK interface to applyMassMatrix
bool hasMass () const
 Returns true if system has a mass matrix.
Overloaded NOX::LAPACK::Group methods.
NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
NOX::LAPACK::Groupoperator= (const NOX::LAPACK::Group &source)
 Assignment operator.
NOX::Abstract::Groupclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
NOX::Abstract::Group::ReturnType computeF ()
 Overloaded computeF().
NOX::Abstract::Group::ReturnType computeJacobian ()
 Overloaded computeJacobian().
Implementation of LOCA::Abstract::Group virtual methods.
LOCA::Abstract::Groupoperator= (const LOCA::Abstract::Group &source)
 Assignment operator.
Implementation of LOCA::Continuation::AbstractGroup virtual methods.
void setParams (const LOCA::ParameterVector &p)
 Set the parameter vector.
virtual void setParam (int paramID, double val)
 Set parameter indexed by paramID.
virtual void setParam (string paramID, double val)
 Set parameter indexed by paramID.
const LOCA::ParameterVectorgetParams () const
 Return a const reference to the parameter vector owned by the group.
virtual double getParam (int paramID) const
 Return copy of parameter indexed by paramID.
virtual double getParam (string paramID) const
 Return copy of parameter indexed by paramID.
virtual NOX::Abstract::Group::ReturnType applyJacobianInverseMulti (NOX::Parameter::List &params, const NOX::Abstract::Vector *const *inputs, NOX::Abstract::Vector **outputs, int nVecs) const
 applyJacobianInverse for multiple right-hand sides
virtual NOX::Abstract::Group::ReturnType computeEigenvalues (NOX::Parameter::List &params)
 Compute eigenvalues/eigenvectors.
void printSolution (const double conParam) const
 Print out the solution vector and continuation parameter.
void printSolution (const NOX::Abstract::Vector &x_, const double conParam) const
 Print out a vector and a parameter.
Implementation of LOCA::Bifurcation::TPBord::AbstractGroup virtual methods.
virtual NOX::Abstract::Group::ReturnType applyBorderedJacobianInverse (bool trans, NOX::Parameter::List &params, const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b, const NOX::Abstract::Vector &vInput, double sInput, NOX::Abstract::Vector &vResult, double &sResult) const
 Solve a bordered system of equations.
Implementation of LOCA::TimeDependent::AbstractGroup virtual methods.
virtual NOX::Abstract::Group::ReturnType computeMassMatrix ()
 Compute the mass matrix of the system.
virtual NOX::Abstract::Group::ReturnType applyMassMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the mass matrix by a vector.
virtual bool isMassMatrix () const
 Returns true if mass matrix is valid.
Implementation of LOCA::Bifurcation::HopfBord::AbstractGroup virtual methods.
virtual NOX::Abstract::Group::ReturnType applyComplexInverse (NOX::Parameter::List &params, const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, double frequency, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 Solve $(J+i\omega B)(y+iz) = a+ib$.
virtual NOX::Abstract::Group::ReturnType applyComplexInverseMulti (NOX::Parameter::List &params, const NOX::Abstract::Vector *const *inputs_real, const NOX::Abstract::Vector *const *inputs_imag, double frequency, NOX::Abstract::Vector **results_real, NOX::Abstract::Vector **results_imag, int nVecs) const
 applyComplexInverse for multiple right-hand-sides
Implementation of LOCA::Homotopy::AbstractGroup virtual methods.
virtual NOX::Abstract::Group::ReturnType augmentJacobianForHomotopy (double conParamValue)
 Replace Jacobian $J$ by $J+pI$ where $I$ is the identity matrix and $p$ is a scalar (conParamValue).

Protected Member Functions

void resetIsValid ()
 resets isValid flags

Protected Attributes

LOCA::LAPACK::InterfacelocaProblemInterface
 Referece to current problem.
ParameterVector params
 vector of parameters
NOX::LAPACK::Matrix massMatrix
 Mass matrix.
bool hasMassMatrix
 Flag indicating whether we have a mass matrix.
bool isValidMass
 Flag indicating whether mass matrix is valid.

Detailed Description

Extension of the NOX::LAPACK::Group to LOCA.

This class is derived both from the NOX::LAPACK::Group and LOCA::Abstract::Group classes and therefore inherits the implementation of the NOX::Abstract::Group interface provided by NOX::LAPACK::Group.

This class provides implementations of LOCA AbstractGroup virtual methods specific to the LAPACK group. It stores a parameter vector for setting/retrieving parameter values (LOCA::Continuation::AbstractGroup), provides a facility for computing eigenvalues (LOCA::Continuation::AbstractGroup) using the LAPACK routines DGEEV and DGGEV, augements the Jacobian matrix for homotopy (LOCA::Homotopy::AbstractGroup), and stores and manipulates a mass matrix (LOCA::Bifurcation::HopfBord::AbstractGroup). Since it is derived from the LOCA::Abstract::Group (which is in-turn derived from all FiniteDifference groups), this group implicitly uses the finite-difference implementations of parameter and second derivatives provided by the FiniteDifference groups. This group can therefore be used as an underlying group for all of LOCA's continuation and bifurcation algorithms.

The computeF() and computeJacobian() methods of the NOX::LAPACK::Group parent class are overloaded here. They both set the entire contents of the parameter vector in the problem interface before calling the NOX::LAPACK::Group computeF() and computeJacobian().

This group has several constructors supplying different information. All require a LOCA::LAPACK::Interface object to link to the application code. Set hasMassMat to true if the system has a mass matrix (only relevant for eigenvalue and Hopf calculations). Pass a parameter list to change the algorithm used for singular Jacobian matrix solves (see LOCA::Bifurcation::TPBord::SingularSolveGroup, only relevant for turning point and pitchfork calculations). Finally, separate used and allocated row/column dimensions can be specified. This functionality exists primarily to link with Fortran codes which preallocate all arrays to a fixed size but only use a portion of that array.


Constructor & Destructor Documentation

LOCA::LAPACK::Group::Group LOCA::LAPACK::Interface i,
bool  hasMassMat = false
 

Constructor.

Set hasMassMat to true if the system has a mass matrix (Only relevant for eigenvalue and Hopf calculations).

LOCA::LAPACK::Group::Group NOX::Parameter::List params,
LOCA::LAPACK::Interface i,
bool  hasMassMat = false
 

Constructor with parameter list.

Pass a parameter for singular matrix solves. (see LOCA::Bifurcation::TPBord::SingularSolveGroup)


Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::applyBorderedJacobianInverse bool  trans,
NOX::Parameter::List params,
const NOX::Abstract::Vector a,
const NOX::Abstract::Vector b,
const NOX::Abstract::Vector vInput,
double  sInput,
NOX::Abstract::Vector vResult,
double &  sResult
const [virtual]
 

Solve a bordered system of equations.

Compute the solution to the bordered system of equations

\[ \begin{bmatrix} J & a \\ b^T & 0 \end{bmatrix} \begin{bmatrix} \text{vResult} \\ \text{sResult} \end{bmatrix} = \begin{bmatrix} \text{vInput} \\ \text{sInput} \end{bmatrix} \]

Reimplemented from LOCA::Abstract::Group.

NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::computeF  )  [virtual]
 

Overloaded computeF().

Calls LOCA::LAPACK::Interface::setParams before evalulating F.

Reimplemented from NOX::LAPACK::Group.

NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::computeJacobian  )  [virtual]
 

Overloaded computeJacobian().

Calls LOCA::LAPACK::Interface::setParams before evalulating J.

Reimplemented from NOX::LAPACK::Group.


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