LOCA::Continuation::NaturalGroup Class Reference

Concrete implementation of a LOCA::Continuation::Group for natural continuation. More...

#include <LOCA_Continuation_NaturalGroup.H>

Inheritance diagram for LOCA::Continuation::NaturalGroup:

Collaboration diagram for LOCA::Continuation::NaturalGroup:
List of all members.

Public Member Functions

 NaturalGroup (LOCA::Continuation::AbstractGroup &g, int paramID, NOX::Parameter::List &params)
 Constructor with integer continuation parameter id.
 NaturalGroup (LOCA::Continuation::AbstractGroup &g, string paramID, NOX::Parameter::List &params)
 Constructor with string continuation parameter id.
 NaturalGroup (const NaturalGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~NaturalGroup ()
virtual LOCA::Continuation::ExtendedGroupoperator= (const LOCA::Continuation::ExtendedGroup &source)
 Assignment operator.
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual NaturalGroupoperator= (const NaturalGroup &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.
"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 NaturalGroup &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 continuation solution vector.
LOCA::Continuation::ExtendedVector fVec
 Stores the continuation residual vector.
LOCA::Continuation::ExtendedVector newtonVec
 Stores the continuation Newton vector.
LOCA::Continuation::ExtendedVector gradientVec
 Stores the arclength gradient vector.
LOCA::Continuation::ExtendedVector prevXVec
 Stores the previous arclength solution vector.
 Store the derivative of the residual w.r.t. continuation param.
double stepSize
 Stores step size $\Delta s$.
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.

Detailed Description

Concrete implementation of a LOCA::Continuation::Group for natural continuation.

Natural 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)=p-p_0-v_p \Delta s$ where $v_p$ is the parameter component of the predictor direction $v$. This corresponds geometrically to constraining the nonlinear solver steps used in calculating $F(x,p)=0$ to be orthogonal to the parameter axis.

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