LOCA::Continuation::ArcLengthGroup Class Reference

Concrete implementation of a LOCA::Continuation::Group for pseudo arc-length continuation. More...

#include <LOCA_Continuation_ArcLengthGroup.H>

Inheritance diagram for LOCA::Continuation::ArcLengthGroup:

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

Public Member Functions

 ArcLengthGroup (LOCA::Continuation::AbstractGroup &g, int paramID, NOX::Parameter::List &params)
 Constructor with integer continuation parameter id.
 ArcLengthGroup (LOCA::Continuation::AbstractGroup &g, string paramID, NOX::Parameter::List &params)
 Constructor with string continuation parameter id.
 ArcLengthGroup (const ArcLengthGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~ArcLengthGroup ()
 Destructor.
virtual LOCA::Continuation::ExtendedGroupoperator= (const LOCA::Continuation::ExtendedGroup &source)
 Assignment operator.
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual ArcLengthGroupoperator= (const ArcLengthGroup &source)
 Assignment operator.
virtual NOX::Abstract::Groupclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
virtual void setStepSize (double deltaS)
 Set step size for continuation constraint equation.
virtual double getStepSize () const
 Get step size for continuation constraint equation.
virtual void setContinuationParameter (double val)
 Sets the continuation parameter value.
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.
"Compute" functions.
virtual void setX (const NOX::Abstract::Vector &y)
 Set the solution vector to y.
virtual void setX (const LOCA::Continuation::ExtendedVector &y)
 Set the solution vector to y.
virtual void setPrevX (const NOX::Abstract::Vector &y)
 Set the previous solution vector to y.
virtual void setPrevX (const LOCA::Continuation::ExtendedVector &y)
 Set the previous solution vector to y.
virtual const LOCA::Continuation::ExtendedVectorgetPrevX () const
 Gets the previous solution vector.
virtual bool isPrevXVec () const
 Returns true if the previous solution vector has been set.
virtual void scalePredictor (LOCA::Continuation::ExtendedVector &v)
 Scale predictor direction.
virtual void computeX (const NOX::Abstract::Group &g, const NOX::Abstract::Vector &d, double step)
 Compute and return solution vector, x, where this.x = grp.x + step * d.
virtual void computeX (const ArcLengthGroup &g, const LOCA::Continuation::ExtendedVector &d, double step)
 Compute and return solution vector, x, where this.x = grp.x + step * d.
virtual NOX::Abstract::Group::ReturnType computeF ()
 Compute extended continuation equations.
virtual NOX::Abstract::Group::ReturnType computeJacobian ()
 Compute extended continuation jacobian.
virtual NOX::Abstract::Group::ReturnType computeGradient ()
 Gradient is not defined for this system.
virtual NOX::Abstract::Group::ReturnType computeNewton (NOX::Parameter::List &params)
 Compute Newton direction for extended continuation system.
Jacobian operations.
virtual NOX::Abstract::Group::ReturnType applyJacobian (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies Jacobian for extended system.
virtual NOX::Abstract::Group::ReturnType applyJacobianTranspose (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Jacobian transpose not defined for this system.
virtual NOX::Abstract::Group::ReturnType applyJacobianInverse (NOX::Parameter::List &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies Jacobian inverse for extended system.
"Is" functions.
Checks to see if various objects have been computed. Returns true if the corresponding "compute" function has been called since the last update to the solution vector (via instantiation or computeX).

virtual bool isF () const
 Return true if extended residual is valid.
virtual bool isJacobian () const
 Return true if the extended Jacobian is valid.
virtual bool isGradient () const
 Always returns false.
virtual bool isNewton () const
 Return true if the extended Newton direction is valid.
"Get" functions.
Note that these function do not check whether or not the vectors are valid. Must use the "Is" functions for that purpose.

virtual const NOX::Abstract::VectorgetX () const
 Return extended solution vector.
virtual const NOX::Abstract::VectorgetF () const
 Return extended residual.
virtual double getNormF () const
 Return 2-norm of extended residual.
virtual const NOX::Abstract::VectorgetGradient () const
 Gradient is never valid.
virtual const NOX::Abstract::VectorgetNewton () const
 Return extended Newton direction.
virtual double getNormNewtonSolveResidual () const
 Returns 2-norm of extended Newton solve residual.

Protected Member Functions

void resetIsValid ()
 Resets all isValid flags.

Protected Attributes

LOCA::Continuation::ExtendedVector xVec
 Stores the arclength solution vector.
LOCA::Continuation::ExtendedVector fVec
 Stores the arclength residual vector.
LOCA::Continuation::ExtendedVector newtonVec
 Stores the arclength Newton vector.
LOCA::Continuation::ExtendedVector gradientVec
 Stores the arclength gradient vector.
LOCA::Continuation::ExtendedVector prevXVec
 Stores the previous arclength solution vector.
NOX::Abstract::VectorderivResidualParamPtr
 Stores the derivative of the solution residual w.r.t. arcparam.
double arclengthStep
 Stores the parameter index.
bool isValidF
 Is residual vector valid.
bool isValidJacobian
 Is Jacobian matrix valid.
bool isValidNewton
 Is Newton vector valid.
bool isValidGradient
 Is Gradient vector valid.
bool isValidPrevXVec
 Is previous solution vector valid.
bool doArcLengthScaling
 Flag indicating whether to do arc-length scaling.
double gGoal
 Goal value of dp/ds squared.
double gMax
 Minimum value for dp/ds for which rescaling is applied.
double thetaMin
 Maximum value of scale factor.
double stepSizeScaleFactor
 Scaling factor for step size.
bool isFirstRescale
 Flag indicating whether this is the first rescaling of predictor.

Detailed Description

Concrete implementation of a LOCA::Continuation::Group for pseudo arc-length continuation.

Pseudo arc-length continuation corresponds to a continuation equation $g(x,p,x_0,p_0,x^\ast,p^\ast,v,\Delta s)=0$ with $g$ given by $g(x,p,x_0,p_0,x^\ast,p^\ast,v,\Delta s)=(x-x^\ast)^Tv_x + (p-p^\ast) v_p - \Delta s$ where $v_x$, $v_p$ are the solution and parameter components of the predictor direction $v$ respectively. This corresponds geometrically to constraining the nonlinear solver steps used in calculating $F(x,p)=0$ to be orthogonal to the predictor direction $v$.

This group is a complete implementation of a NOX::Abstract::Group for the extended set of equations $F = 0$, $g = 0$ and defines all relevant methods for this set of equations (computeF, computeJacobian, computeNewton, etc).


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