NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for LOCA::LAPACK::Group:
Collaboration graph
[legend]

Public Member Functions

 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data, LOCA::LAPACK::Interface &i)
 Constructor.
 
 Group (const LOCA::LAPACK::Group &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
 ~Group ()
 Destructor.
 
LOCA::LAPACK::Groupoperator= (const LOCA::LAPACK::Group &source)
 Assignment operator.
 
NOX::LAPACK::Matrix< double > & getJacobianMatrix ()
 Return reference to Jacobian matrix.
 
const NOX::LAPACK::Matrix
< double > & 
getJacobianMatrix () const
 Return reference to Jacobian matrix.
 
NOX::LAPACK::Matrix< double > & getShiftedMatrix ()
 Return reference to shifted matrix.
 
const NOX::LAPACK::Matrix
< double > & 
getShiftedMatrix () const
 Return reference to shifted 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.
 
Teuchos::RCP
< NOX::Abstract::Group
clone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
 
NOX::Abstract::Group::ReturnType computeF ()
 Overloaded computeF() More...
 
NOX::Abstract::Group::ReturnType computeJacobian ()
 Overloaded computeJacobian() More...
 
Implementation of LOCA::Abstract::TransposeSolveGroup methods.
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianTransposeInverse (Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Solve Jacobian-tranpose system.
 
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianTransposeInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Solve Jacobian-tranpose system with multiple right-hand sides.
 
Implementation of LOCA::MultiContinuation::AbstractGroup virtual methods.
virtual void copy (const NOX::Abstract::Group &source)
 Copy.
 
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 (std::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 (std::string paramID) const
 Return copy of parameter indexed by paramID.
 
virtual void projectToDraw (const NOX::Abstract::Vector &x, double *px) const
 Projects solution to a few scalars for multiparameter continuation. More...
 
virtual int projectToDrawDimension () const
 Returns the dimension of the project to draw array. More...
 
virtual double computeScaledDotProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute a scaled dot product. More...
 
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.
 
virtual void scaleVector (NOX::Abstract::Vector &x) const
 Scales a vector. More...
 
Implementation of LOCA::TimeDependent::AbstractGroup virtual methods.
virtual
NOX::Abstract::Group::ReturnType 
computeShiftedMatrix (double alpha, double beta)
 Compute the shifted matrix.
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the shifted matrix by a vector.
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrixMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Multiply the shifted matrix by a multi-vector.
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrixInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Apply the inverse of the shifted matrix by a multi-vector, as needed by the shift-and-invert and generalized Cayley transformations.
 
Implementation of LOCA::Hopf::MooreSpence::AbstractGroup virtual methods.
virtual bool isComplex () const
 Is $J+i\omega B$ valid.
 
virtual
NOX::Abstract::Group::ReturnType 
computeComplex (double frequency)
 Compute $J+i\omega B$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplex (const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 Compute $(J+i\omega B)(y+iz)$.
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexMultiVector (const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Compute $(J+i\omega B)(y+iz)$.
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Solve $(J+i\omega B)(y+iz) = a+ib$.
 
Implementation of LOCA::Hopf::MinimallyAugmented::AbstractGroup virtual methods.
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTranspose (const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTransposeMultiVector (const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTransposeInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Solve $(J+i\omega B)^H (x + iy) = a+ib$.
 
Implementation of LOCA::Homotopy::AbstractGroup virtual methods.
virtual
NOX::Abstract::Group::ReturnType 
augmentJacobianForHomotopy (double a, double b)
 Replace Jacobian $J$ by $aJ+bI$ where $I$ is the identity matrix.
 
- Public Member Functions inherited from NOX::LAPACK::Group
 Group (Interface &i)
 Constructor.
 
 Group (const NOX::LAPACK::Group &source, NOX::CopyType type=DeepCopy)
 Copy constructor.
 
 ~Group ()
 Destructor.
 
NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Copies the source group into this group. More...
 
NOX::Abstract::Groupoperator= (const NOX::LAPACK::Group &source)
 See above.
 
void print () const
 Print out the group.
 
void setX (const NOX::Abstract::Vector &y)
 Set the solution vector x to y. More...
 
void setX (const NOX::LAPACK::Vector &y)
 See above.
 
void computeX (const NOX::Abstract::Group &grp, const NOX::Abstract::Vector &d, double step)
 Compute x = grp.x + step * d. More...
 
void computeX (const NOX::LAPACK::Group &grp, const NOX::LAPACK::Vector &d, double step)
 See above.
 
NOX::Abstract::Group::ReturnType computeF ()
 Compute and store F(x). More...
 
NOX::Abstract::Group::ReturnType computeJacobian ()
 Compute and store Jacobian. More...
 
NOX::Abstract::Group::ReturnType computeGradient ()
 Compute and store gradient. More...
 
NOX::Abstract::Group::ReturnType computeNewton (Teuchos::ParameterList &params)
 Compute the Newton direction, using parameters for the linear solve. More...
 
NOX::Abstract::Group::ReturnType applyJacobian (const NOX::LAPACK::Vector &input, NOX::LAPACK::Vector &result) const
 
NOX::Abstract::Group::ReturnType applyJacobian (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 See above.
 
NOX::Abstract::Group::ReturnType applyJacobianTranspose (const NOX::LAPACK::Vector &input, NOX::LAPACK::Vector &result) const
 
NOX::Abstract::Group::ReturnType applyJacobianTranspose (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 See above.
 
NOX::Abstract::Group::ReturnType applyJacobianInverse (Teuchos::ParameterList &params, const NOX::LAPACK::Vector &input, Vector &result) const
 
NOX::Abstract::Group::ReturnType applyJacobianInverse (Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies the inverse of the Jacobian matrix to the given input vector and puts the answer in result. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyJacobianInverse for multiple right-hand sides
 
bool isF () const
 Return true if F is valid.
 
bool isJacobian () const
 Return true if the Jacobian is valid. More...
 
bool isGradient () const
 Return true if the gradient is valid. More...
 
bool isNewton () const
 Return true if the Newton direction is valid. More...
 
const NOX::Abstract::VectorgetX () const
 Return solution vector.
 
const NOX::Abstract::VectorgetF () const
 Return F(x)
 
double getNormF () const
 Return 2-norm of F(x). More...
 
const NOX::Abstract::VectorgetGradient () const
 Return gradient.
 
const NOX::Abstract::VectorgetNewton () const
 Return Newton direction.
 
Teuchos::RCP< const
NOX::Abstract::Vector
getXPtr () const
 Return RCP to solution vector.
 
Teuchos::RCP< const
NOX::Abstract::Vector
getFPtr () const
 Return RCP to F(x)
 
Teuchos::RCP< const
NOX::Abstract::Vector
getGradientPtr () const
 Return RCP to gradient.
 
Teuchos::RCP< const
NOX::Abstract::Vector
getNewtonPtr () const
 Return RCP to Newton direction.
 
- Public Member Functions inherited from NOX::Abstract::Group
 Group ()
 Constructor. More...
 
virtual Teuchos::RCP
< NOX::Abstract::Group
getNestedGroup ()
 Return an internally stored group from this group. More...
 
virtual Teuchos::RCP< const
NOX::Abstract::Group
getNestedGroup () const
 Return an internally stored group from this group. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyRightPreconditioning (bool useTranspose, Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Apply right preconditiong to the given input vector. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyJacobian for multiple right-hand sides More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianTransposeMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyJacobianTranspose for multiple right-hand sides More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyRightPreconditioningMultiVector (bool useTranspose, Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyRightPreconditioning for multiple right-hand sides More...
 
virtual const
NOX::Abstract::Vector
getScaledX () const
 
virtual void logLastLinearSolveStats (NOX::SolverStats &stats) const
 Adds statistics from last linear solve to the SovlerStats object.
 
virtual
NOX::Abstract::Group::ReturnType 
getNormLastLinearSolveResidual (double &residual) const
 Return the norm of the last linear solve residual as the result of either a call to computeNewton() or applyJacobianInverse(). More...
 
- Public Member Functions inherited from LOCA::Abstract::Group
 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data)
 Constructor.
 
 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::DerivUtils > &deriv)
 Constructor.
 
 Group (const Group &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeSecondShiftedMatrix (double alpha, double beta)
 Compute the second shifted matrix. Can avoid recomputing if two are stored. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applySecondShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the shifted matrix by a vector. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applySecondShiftedMatrixMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Multiply the shifted matrix by a multi-vector. More...
 
virtual void setParamsMulti (const std::vector< int > &paramIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals)
 Set parameters indexed by (integer) paramIDs.
 
virtual void notifyCompletedStep ()
 
virtual double computeFreeEnergy ()
 Computes the free energy at the current solution and parameter values.
 
- Public Member Functions inherited from LOCA::Homotopy::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::MultiContinuation::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual void preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)
 Perform any preprocessing before a continuation step starts. More...
 
virtual void postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)
 Perform any postprocessing after a continuation step finishes. More...
 
- Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector::DenseMatrix &result, bool isValid)
 Computes the derivative $\partial w^TJn/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w, NOX::Abstract::MultiVector &result, bool isValid)
 Computes the derivative $\partial w^TJ/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDx (const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::Vector &result)
 Computes the derivative $\frac{\partial w^TJn}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDpMulti (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result, bool isValid)
 Computes the derivative $\partial Jn/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxaMulti (const NOX::Abstract::Vector &nullVector, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result)
 Computes the directional derivative $\frac{\partial Jn}{\partial x} a$ for the given direction $ a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxaMulti (const NOX::Abstract::Vector &nullVector, const NOX::Abstract::Vector &JnVector, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result)
 Computes the directional derivative $\frac{\partial Jn}{\partial x} a$ for the given direction $ a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDxMulti (const NOX::Abstract::MultiVector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result)
 Computes the derivative $\frac{\partial w^TJn}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::MultiContinuation::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual void setDerivUtils (const Teuchos::RCP< LOCA::DerivUtils > &deriv)
 Set the LOCA::DerivUtils object.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDfDpMulti (const std::vector< int > &paramIDs, NOX::Abstract::MultiVector &dfdp, bool isValidF)
 
- Public Member Functions inherited from LOCA::Pitchfork::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Pitchfork::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual double innerProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute the inner product of a and b. More...
 
virtual void innerProduct (const NOX::Abstract::MultiVector &a, const NOX::Abstract::MultiVector &b, NOX::Abstract::MultiVector::DenseMatrix &c) const
 Compute the inner product of a and b. More...
 
- Public Member Functions inherited from LOCA::Hopf::MinimallyAugmented::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &y, const NOX::Abstract::Vector &x, double omega, NOX::Abstract::MultiVector::DenseMatrix &result_real, NOX::Abstract::MultiVector::DenseMatrix &result_imag, bool isValid)
 Computes the derivative $\partial w^TCe/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDx (const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &y, const NOX::Abstract::Vector &z, double omega, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag)
 Computes the derivative $\frac{\partial w^TCe}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::Hopf::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Hopf::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TimeDependent::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::Hopf::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag, bool isValid)
 Computes the derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial p}$ where $ p$ is the parameter indexed by paramIDs. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag)
 Computes the directional derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial x} a$ for the given direction $ a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, const NOX::Abstract::Vector &Ce_real, const NOX::Abstract::Vector &Ce_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag)
 Computes the directional derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial x} a$ for the given direction $ a$. The arguments Ce_real and Ce_imag hold the real and imaginary components of $(J+i\omega B)(y+iz)$. More...
 
- Public Member Functions inherited from LOCA::PhaseTransition::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Abstract::TransposeSolveGroup
 TransposeSolveGroup ()
 Constructor.
 
virtual ~TransposeSolveGroup ()
 Destructor.
 

Protected Member Functions

void resetIsValid ()
 resets isValid flags
 
- Protected Member Functions inherited from NOX::LAPACK::Group
void resetIsValid ()
 resets the isValid flags to false
 

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 LOCA Global data object.
 
LOCA::LAPACK::InterfacelocaProblemInterface
 Referece to current problem.
 
ParameterVector params
 vector of parameters
 
NOX::LAPACK::LinearSolver< double > shiftedSolver
 Shifted matrix (alpha*J+beta*M)
 
double freq
 Frequency for Hopf calculations.
 
bool isValidComplex
 Flag indicating whether complex matrix is valid.
 
- Protected Attributes inherited from NOX::LAPACK::Group
NOX::LAPACK::LinearSolver< double > jacSolver
 Jacobian Matrix & LAPACK solver.
 
NOX::LAPACK::InterfaceproblemInterface
 Problem interface.
 
NOX::LAPACK::Vector xVector
 Solution vector.
 
NOX::LAPACK::Vector fVector
 Right-hand-side vector (function evaluation).
 
NOX::LAPACK::Vector newtonVector
 Newton direction vector.
 
NOX::LAPACK::Vector gradientVector
 Gradient vector (steepest descent vector).
 
bool isValidF
 
bool isValidJacobian
 
bool isValidGradient
 
bool isValidNewton
 
- Protected Attributes inherited from LOCA::Abstract::Group
Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
 
- Protected Attributes inherited from LOCA::MultiContinuation::FiniteDifferenceGroup
Teuchos::RCP< DerivUtilsderivPtr
 Pointer to current DerivUtils derivative computation object.
 

Additional Inherited Members

- Public Types inherited from NOX::Abstract::Group
enum  ReturnType {
  Ok, NotDefined, BadDependency, NotConverged,
  Failed
}
 The computation of, say, the Newton direction in computeNewton() may fail in many different ways, so we have included a variety of return codes to describe the failures. Of course, we also have a code for success. More...
 

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). 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.

Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::applyComplexTranspose ( const NOX::Abstract::Vector input_real,
const NOX::Abstract::Vector input_imag,
NOX::Abstract::Vector result_real,
NOX::Abstract::Vector result_imag 
) const
virtual

Computes conjugate-tranpose matrix vector product $ (J+i\omega B)^H (x + iy) $.

Reimplemented from LOCA::Abstract::Group.

References NOX::Abstract::Group::BadDependency, and NOX::Abstract::Group::Ok.

NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::applyComplexTransposeMultiVector ( const NOX::Abstract::MultiVector input_real,
const NOX::Abstract::MultiVector input_imag,
NOX::Abstract::MultiVector result_real,
NOX::Abstract::MultiVector result_imag 
) const
virtual

Computes conjugate-tranpose matrix vector product $ (J+i\omega B)^H (x + iy) $.

Reimplemented from LOCA::Abstract::Group.

References NOX::Abstract::Group::BadDependency, NOX::Abstract::MultiVector::numVectors(), NOX::Abstract::Group::Ok, and TEUCHOS_ASSERT.

NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::computeComplex ( double  frequency)
virtual
NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::computeF ( )
virtual

Overloaded computeF()

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

Implements NOX::Abstract::Group.

References NOX::LAPACK::Group::computeF().

NOX::Abstract::Group::ReturnType LOCA::LAPACK::Group::computeJacobian ( )
virtual
double LOCA::LAPACK::Group::computeScaledDotProduct ( const NOX::Abstract::Vector a,
const NOX::Abstract::Vector b 
) const
virtual

Compute a scaled dot product.

The implementation here is a.dot(b) / a.length()

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

References NOX::Abstract::Vector::innerProduct(), and NOX::Abstract::Vector::length().

void LOCA::LAPACK::Group::projectToDraw ( const NOX::Abstract::Vector x,
double *  px 
) const
virtual

Projects solution to a few scalars for multiparameter continuation.

This method is called every time a solution is saved by the multiparameter continuation code MF for later visualization and should project the solution vector down to a few scalars. The array px will be preallocated to the proper length given by projectToDrawDimension().

The implementation here is to call the corresponding method in the interface.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

int LOCA::LAPACK::Group::projectToDrawDimension ( ) const
virtual

Returns the dimension of the project to draw array.

The implementation here is to call the corresponding method in the interface.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

void LOCA::LAPACK::Group::scaleVector ( NOX::Abstract::Vector x) const
virtual

Scales a vector.

The implementation here is x.scale(1.0/sqrt(x.length))

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

References NOX::Abstract::Vector::length(), and NOX::Abstract::Vector::scale().


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