|
NOX
Development
|
Specialization of LOCA::MultiContinuation::ExtendedGroup to pseudo-arclength continuation. More...
#include <LOCA_MultiContinuation_ArcLengthGroup.H>
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 std::vector< int > ¶mIDs) | |
| 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::Group & | operator= (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 | |
| std::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. | |
Specialization of LOCA::MultiContinuation::ExtendedGroup to pseudo-arclength continuation.
Pseudo arc-length continuation corresponds to a continuation equation
with
given by
where
,
are the solution and parameter components of the predictor direction
respectively. This corresponds geometrically to constraining the nonlinear solver steps used in calculating
to be orthogonal to the predictor direction
. The arclength constraint
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
where
is chosen so that
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
is given by "Initial Scale Factor". A new value of
is chosen only if
is larger than the value given by "Max Arc Length Parameter Contribution" and "Min Scale Factor" provides a minimum value for
.
| 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 std::vector< int > & | paramIDs | ||
| ) |
Constructor.
| global_data | [in] Global data object |
| topParams | [in] Parsed top-level parameter list. |
| continuationParams | [in] Continuation parameters as described above. |
| grp | [in] Group representing . |
| pred | [in] Predictor strategy. |
| paramIDs | [in] Parameter IDs of continuation parameters. |
References doArcLengthScaling, Teuchos::ParameterList::get(), gGoal, LOCA::MultiContinuation::ExtendedGroup::globalData, gMax, LOCA::MultiContinuation::ExtendedGroup::numParams, Teuchos::rcp(), LOCA::MultiContinuation::ExtendedGroup::setConstraints(), theta, and thetaMin.
1.7.6.1