NOX Development
Public Member Functions | Protected Attributes
LOCA::MultiContinuation::ArcLengthGroup Class Reference

Specialization of LOCA::MultiContinuation::ExtendedGroup to pseudo-arclength continuation. More...

#include <LOCA_MultiContinuation_ArcLengthGroup.H>

Inheritance diagram for LOCA::MultiContinuation::ArcLengthGroup:
Inheritance graph
[legend]
Collaboration diagram for LOCA::MultiContinuation::ArcLengthGroup:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ArcLengthGroup (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &continuationParams, const Teuchos::RCP< LOCA::MultiContinuation::AbstractGroup > &grp, const Teuchos::RCP< LOCA::MultiPredictor::AbstractStrategy > &pred, const vector< int > &paramIDs)
 Constructor.
 ArcLengthGroup (const ArcLengthGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~ArcLengthGroup ()
 Destructor.
Implementation of NOX::Abstract::Group virtual methods
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual Teuchos::RCP
< NOX::Abstract::Group
clone (NOX::CopyType type=NOX::DeepCopy) const
 Clone function.
Implementation of LOCA::MultiContinuation::AbstractStrategy virtual methods
virtual void copy (const NOX::Abstract::Group &source)
 Copy.
virtual void scaleTangent ()
 Scales predictor.
virtual double computeScaledDotProduct (const NOX::Abstract::Vector &x, const NOX::Abstract::Vector &y) const
 Computes a scaled dot product between two continuation vectors.
virtual void recalculateScaleFactor (double dpds, double thetaOld, double &thetaNew)
 Calculates scale factors.

Protected Attributes

vector< double > theta
 Stores scaling factor for each arclength equation.
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.
bool isFirstRescale
 Flag indicating whether this is the first rescaling of predictor.

Detailed Description

Specialization of LOCA::MultiContinuation::ExtendedGroup to pseudo-arclength 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$. The arclength constraint $g$ is represented by a LOCA::MultiContinuation::ArcLengthConstraint object.

This class also reimplements the scaleTangent() and computeScaledDotProduct() methods to implement a scaling method that tries to ensure the solution and parameter contributions to the arc-length equation are of the same order. Specifically, the arc-length equation is replaced by

\[ (x-x^\ast)^Tv_x + \theta^2(p-p^\ast) v_p - \Delta s = 0 \]

where $\theta$ is chosen so that $\theta^2 v_p$ is equal to a target value, 0.5 by default. Parameters for this scaling method are passed through the continuationParams argument to the constructor and are:

Whether this scaling method is used is determined by the "Enable Arc Length Scaling", and the initial value for $\theta$ is given by "Initial Scale Factor". A new value of $\theta$ is chosen only if $\theta^2 v_p$ is larger than the value given by "Max Arc Length Parameter Contribution" and "Min Scale Factor" provides a minimum value for $\theta$.


Constructor & Destructor Documentation

LOCA::MultiContinuation::ArcLengthGroup::ArcLengthGroup ( const Teuchos::RCP< LOCA::GlobalData > &  global_data,
const Teuchos::RCP< LOCA::Parameter::SublistParser > &  topParams,
const Teuchos::RCP< Teuchos::ParameterList > &  continuationParams,
const Teuchos::RCP< LOCA::MultiContinuation::AbstractGroup > &  grp,
const Teuchos::RCP< LOCA::MultiPredictor::AbstractStrategy > &  pred,
const vector< int > &  paramIDs 
)

Constructor.

Parameters:
global_data[in] Global data object
topParams[in] Parsed top-level parameter list.
continuationParams[in] Continuation parameters as described above.
grp[in] Group representing $F$.
pred[in] Predictor strategy.
paramIDs[in] Parameter IDs of continuation parameters.

References doArcLengthScaling, Teuchos::RCP< T >::get(), gGoal, LOCA::MultiContinuation::ExtendedGroup::globalData, gMax, LOCA::MultiContinuation::ExtendedGroup::numParams, Teuchos::rcp(), LOCA::MultiContinuation::ExtendedGroup::setConstraints(), theta, and thetaMin.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends