LOCA::Continuation::ExtendedGroup Class Reference

Base class for all continuation groups. More...

#include <LOCA_Continuation_ExtendedGroup.H>

Inheritance diagram for LOCA::Continuation::ExtendedGroup:

[legend]
Collaboration diagram for LOCA::Continuation::ExtendedGroup:
[legend]
List of all members.

Public Member Functions

 ExtendedGroup (LOCA::Continuation::AbstractGroup &grp, int paramID, NOX::Parameter::List &params)
 Constructor with integer continuation parameter id.
 ExtendedGroup (const LOCA::Continuation::AbstractGroup &grp, int paramID, NOX::Parameter::List &params)
 Constructor with const grp, integer continuation parameter id.
 ExtendedGroup (LOCA::Continuation::AbstractGroup &grp, string paramID, NOX::Parameter::List &params)
 Constructor with string continuation parameter id.
 ExtendedGroup (const LOCA::Continuation::AbstractGroup &grp, string paramID, NOX::Parameter::List &params)
 Constructor with const grp, string continuation parameter id.
 ExtendedGroup (const ExtendedGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~ExtendedGroup ()
 Destructor.
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual LOCA::Extended::AbstractGroupoperator= (const LOCA::Extended::AbstractGroup &source)
 Assignment operator.
virtual ExtendedGroupoperator= (const ExtendedGroup &source)
 Assignment operator.
virtual void setPrevX (const NOX::Abstract::Vector &y)=0
 Set the previous solution vector y.
virtual void setPrevX (const LOCA::Continuation::ExtendedVector &y)=0
 Set the previous solution vector y.
virtual const LOCA::Continuation::ExtendedVectorgetPrevX () const =0
 Gets the previous solution vector.
virtual bool isPrevXVec () const =0
 Returns true if the previous solution vector has been set.
virtual void setStepSize (double deltaS)=0
 Set step size for continuation constraint equation.
virtual double getStepSize () const =0
 Get step size for continuation constraint equation.
virtual void scalePredictor (LOCA::Continuation::ExtendedVector &v)=0
 Scale predictor direction.
virtual const LOCA::Continuation::ExtendedVectorgetPredictorDirection () const
 Get predictor direction (tangent or secant).
virtual void setPredictorDirection (const LOCA::Continuation::ExtendedVector &)
 Set predictor direction (tangent or secant).
virtual bool isPredictorDirection () const
 Returns true if a predictor direction has been computed.
virtual void setContinuationParameter (double val)
 Sets the continuation parameter value.
virtual double getContinuationParameter () const
 Returns the continuation parameter value.
virtual int getContinuationParameterID () const
 Get the continuation parameter id.
virtual void setScaleFactor (double theta)
 Sets the scale factor $\theta$.
virtual double getScaleFactor () const
 Returns the scale factor $\theta$.
virtual void recalculateScaleFactor (double dpds)
 Calculates scale factor as described in the loca v1.0 manual.
virtual double getStepSizeScaleFactor () const
 Returns step size scale factor.
virtual void printSolution () const
 Prints the group.
virtual double computeScaledDotProduct (const NOX::Abstract::Vector &x, const NOX::Abstract::Vector &y) const
 Computes a scaled dot product between two continuation vectors.
virtual double computeScaledDotProduct (const LOCA::Continuation::ExtendedVector &x, const LOCA::Continuation::ExtendedVector &y) const
 Computes a scaled dot product between two continuation vectors.
virtual const LOCA::Continuation::AbstractGroupgetUnderlyingGroup () const
 Return underlying group.
virtual LOCA::Continuation::AbstractGroupgetUnderlyingGroup ()
 Return underlying group.

Protected Member Functions

void resetIsValid ()
 Resets all isValid flags to false.

Protected Attributes

LOCA::Continuation::AbstractGroupgrpPtr
 Pointer to base group that defines $F$.
int conParamID
 integer id of continuatin parameter
LOCA::Continuation::ExtendedVector predictorVec
 Vector to hold predictor direction.
bool ownsGroup
 Flag indicating whether we have our own copy of the underlying group.
bool isValidPredictor
 True if predictor has been calculated.
double theta
 Stores scaling factor.

Detailed Description

Base class for all continuation groups.

Continuation is defined as computing some curve $(x(s),p(s))\in\Re^{n+1}$ such that $F(x(s),p(s))=0$ for some parameterization $s$. Given some point $(x_0,p_0)$ on the curve, another nearby point on the curve is calculated by first computing a predictor direction $v\in\Re^{n+1}$ and the approximate point $(x^\ast,p^\ast) = (x_0,p_0) + v\Delta s$ where $\Delta s$ is the step size. Then the next point on the curve is computed by solving the extended set of equations

\[ \begin{array}{cc} F(x,p) &= 0 \\ g(x,p,x_0,p_0,x^\ast,p^\ast,v,\Delta s) &= 0 \end{array} \]

for $(x,p)$. The equation $g(x,p,x_0,p_0,x^\ast,p^\ast,v,\Delta s)=0$ is called the continuation equation and different choices of $g$ yield different continuation methods.

This group, derived from the LOCA::Extended::AbstractGroup, defines an additional interface that continuation groups should implement so that all continuation groups can be manipulated by the LOCA::Stepper and LOCA::StepSize objects in a consistent fashion. This group also defines some generic algorithms for commom computations among continuation groups and manages some of the data needed by all continuation groups.. It stores a pointer to the underlying group (representing $F$), a class of the type LOCA::Continuation::AbstractGroup.

Ofter duing a continuation run, the continuation path must be reparameterized due to changing relative magnitudes of the solution component $x$ and parameter component $p$. Since any reparameterization will impact step size control, this group defines an interface for computing a "scale factor" for the continuation equation $g = 0$ and a step size scale factor which can be multiplied by the step size to have a consitent step size across reparameterizations. See LOCA::Continuation::ArcLengthGroup for an example on how this can be used. The default implementation here is for no reparameterization (scale factors are identically 1).

These parameters relavant to this group are:


Constructor & Destructor Documentation

LOCA::Continuation::ExtendedGroup::ExtendedGroup LOCA::Continuation::AbstractGroup grp,
int  paramID,
NOX::Parameter::List params
 

Constructor with integer continuation parameter id.

The argument grp is the underlying group which implements $F$, paramID is the index of the continuation parameter, params is the parameter list for the continuation groups described above.

The grp argument is a non-const reference and may be modified.

LOCA::Continuation::ExtendedGroup::ExtendedGroup const LOCA::Continuation::AbstractGroup grp,
int  paramID,
NOX::Parameter::List params
 

Constructor with const grp, integer continuation parameter id.

The argument grp is the underlying group which implements $F$, paramID is the index of the continuation parameter, params is the parameter list for the continuation groups described above.

LOCA::Continuation::ExtendedGroup::ExtendedGroup LOCA::Continuation::AbstractGroup grp,
string  paramID,
NOX::Parameter::List params
 

Constructor with string continuation parameter id.

The argument grp is the underlying group which implements $F$, paramID is the index of the continuation parameter, params is the parameter list for the continuation groups described above.

The grp argument is a non-const reference and may be modified.

LOCA::Continuation::ExtendedGroup::ExtendedGroup const LOCA::Continuation::AbstractGroup grp,
string  paramID,
NOX::Parameter::List params
 

Constructor with const grp, string continuation parameter id.

The argument grp is the underlying group which implements $F$, paramID is the index of the continuation parameter, and params is the parameter list for the continuation groups described above.


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