LOCA::EpetraNew::Group Class Reference

Extension of the NOX::Epetra:New:Group to LOCA. More...

#include <LOCA_EpetraNew_Group.H>

Inheritance diagram for LOCA::EpetraNew::Group:

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

Public Member Functions

 Group (NOX::Parameter::List &printingParams, LOCA::EpetraNew::Interface::Required &i, NOX::Epetra::Vector &initialGuess, const LOCA::ParameterVector &p)
 Constructor with NO linear system (VERY LIMITED).
 Group (NOX::Parameter::List &printingParams, LOCA::EpetraNew::Interface::Required &i, NOX::Epetra::Vector &initialGuess, NOX::EpetraNew::LinearSystem &linSys, const LOCA::ParameterVector &p)
 Standard Constructor.
 Group (const Group &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor. If type is DeepCopy, takes ownership of valid shared Jacobian and shared preconditioning matrix.
virtual ~Group ()
 Destructor.
virtual Groupoperator= (const Group &source)
 Assignment operator.
virtual NOX::EpetraNew::Interface::RequiredgetUserInterface ()
 Return the userInterface.
virtual void printSolution (const NOX::Epetra::Vector &x, const double conParam) const
 Call the user interface print() routine, any vector.
void setScaleVector (const NOX::Abstract::Vector &s)
 Sets the scale vector.
Overloaded NOX::EpetraNew::Group methods.
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual NOX::Abstract::Groupoperator= (const NOX::EpetraNew::Group &source)
 Assignment operator.
virtual NOX::Abstract::Groupclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
virtual NOX::Abstract::Group::ReturnType computeF ()
 Overloaded computeF().
virtual NOX::Abstract::Group::ReturnType computeJacobian ()
 Overloaded computeJacobian().
Implementation of LOCA::Abstract::Group virtual methods.
virtual LOCA::Abstract::Groupoperator= (const LOCA::Abstract::Group &source)
 Assignment operator.
Implementation of LOCA::Continuation::AbstractGroup virtual methods.
virtual void setParams (const ParameterVector &p)
 Set the parameters.
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 ParameterVector 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 double computeScaledDotProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute a scaled dot product.
virtual void printSolution (const double conParam) const
 Call the user interface print() routine, solution vector.
virtual void printSolution (const NOX::Abstract::Vector &x, const double conParam) const
 Call the user interface print() routine, any vector.

Protected Attributes

LOCA::ParameterVector params
 Parameter vector.
LOCA::EpetraNew::Interface::RequireduserInterface
 Reference to the user supplied interface functions.
Epetra_VectortmpVectorPtr2
 Extra vector needed for intermediate calculations of LOCA routines.
NOX::Abstract::VectorscaleVecPtr
 Stores a pointer to the scale vector.

Detailed Description

Extension of the NOX::Epetra:New:Group to LOCA.

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

This class provides implementations of LOCA AbstractGroup virtual methods specific to the EpetraNew 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 Anasazi package, and augements the Jacobian matrix for homotopy (LOCA::Homotopy::AbstractGroup), It currently has no support for storing a mass matrix and therefore cannot be used in Hopf or generalized eigenvalue computations. 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.

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


Constructor & Destructor Documentation

LOCA::EpetraNew::Group::Group NOX::Parameter::List printingParams,
LOCA::EpetraNew::Interface::Required i,
NOX::Epetra::Vector initialGuess,
const LOCA::ParameterVector p
 

Constructor with NO linear system (VERY LIMITED).

WARNING: If this constructor is used, then methods that require a Jacobian or preconditioning will not be available. You will be limited to simple algorithms like nonlinear-CG with no preconditioning.


Member Function Documentation

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

Overloaded computeF().

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

Reimplemented from NOX::EpetraNew::Group.

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

Overloaded computeJacobian().

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

Reimplemented from NOX::EpetraNew::Group.

double LOCA::EpetraNew::Group::computeScaledDotProduct const NOX::Abstract::Vector a,
const NOX::Abstract::Vector b
const [virtual]
 

Compute a scaled dot product.

The implementation here uses the scaling vector $s$ if one is supplied:

\[ \sum_{i=1}^n a_i*b_i*s_i*s_i. \]

If the scaling vector is not provided, the standard dot product is used.

Reimplemented from LOCA::Continuation::AbstractGroup.


Member Data Documentation

Epetra_Vector* LOCA::EpetraNew::Group::tmpVectorPtr2 [protected]
 

Extra vector needed for intermediate calculations of LOCA routines.

NOTE: there already is a tmpVectorPtr in the NOX::Epetra::Group. This is a second temporary vector if that one extra isn't enough.


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