#include <LOCA_TurningPoint_MinimallyAugmented_ExtendedGroup.H>
Inheritance diagram for LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup:
Public Member Functions | |
| ExtendedGroup (const Teuchos::RefCountPtr< LOCA::GlobalData > &global_data, const Teuchos::RefCountPtr< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RefCountPtr< Teuchos::ParameterList > &tpParams, const Teuchos::RefCountPtr< LOCA::TurningPoint::MinimallyAugmented::AbstractGroup > &g) | |
| Constructor with initial data passed through parameter lists. | |
| ExtendedGroup (const ExtendedGroup &source, NOX::CopyType type=NOX::DeepCopy) | |
| Copy constructor. | |
| virtual | ~ExtendedGroup () |
| Destructor. | |
| double | getBifParam () const |
| Get bifurcation parameter. | |
Implementation of NOX::Abstract::Group virtual methods | |
| virtual NOX::Abstract::Group & | operator= (const NOX::Abstract::Group &source) |
| Assignment operator. | |
|
virtual Teuchos::RefCountPtr< NOX::Abstract::Group > | clone (NOX::CopyType type=NOX::DeepCopy) const |
| Cloning function. | |
| virtual void | setX (const NOX::Abstract::Vector &y) |
| Set the solution vector, x, to y. | |
| virtual void | computeX (const NOX::Abstract::Group &g, const NOX::Abstract::Vector &d, double step) |
| Compute this.x = grp.x + step * d. | |
| virtual NOX::Abstract::Group::ReturnType | computeF () |
Compute the turning point equation residual . | |
| virtual NOX::Abstract::Group::ReturnType | computeJacobian () |
Compute the blocks of the Jacobian derivative of . | |
| virtual NOX::Abstract::Group::ReturnType | computeGradient () |
| Gradient computation is not defined for this group. | |
| virtual NOX::Abstract::Group::ReturnType | computeNewton (Teuchos::ParameterList ¶ms) |
| Compute Newton direction using applyJacobianInverse(). | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobian (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Computes the extended Jacobian vector product. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianTranspose (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Computes the extended Jacobian transpose vector product. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianInverse (Teuchos::ParameterList ¶ms, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Applies the inverse of the extended Jacobian matrix. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const |
| Applies Jacobian for extended system. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianTransposeMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const |
| Jacobian transpose for extended system. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianInverseMultiVector (Teuchos::ParameterList ¶ms, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const |
| Applies Jacobian inverse for extended system. | |
| virtual bool | isF () const |
Return true if the 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. | |
| virtual const NOX::Abstract::Vector & | getX () const |
Return extended solution vector . | |
| virtual const NOX::Abstract::Vector & | getF () const |
Return extended equation residual . | |
| virtual double | getNormF () const |
Return 2-norm of . | |
| virtual const NOX::Abstract::Vector & | getGradient () const |
| Vector returned is not valid. | |
| virtual const NOX::Abstract::Vector & | getNewton () const |
| Return extended Newton direction. | |
| virtual double | getNormNewtonSolveResidual () const |
| Return the norm of the Newton solve residual. | |
Implementation of LOCA::Extended::MultiAbstractGroup | |
virtual methods | |
|
virtual Teuchos::RefCountPtr< const LOCA::MultiContinuation::AbstractGroup > | getUnderlyingGroup () const |
| Return underlying group. | |
|
virtual Teuchos::RefCountPtr< LOCA::MultiContinuation::AbstractGroup > | getUnderlyingGroup () |
| Return underlying group. | |
Implementation of LOCA::MultiContinuation::AbstractGroup | |
virtual methods | |
| virtual void | copy (const NOX::Abstract::Group &source) |
| Assignment operator. | |
| virtual void | setParamsMulti (const vector< int > ¶mIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals) |
| Set parameters indexed by (integer) paramIDs. | |
| virtual void | setParams (const ParameterVector &p) |
| Set the parameter vector in the group to p. | |
| virtual void | setParam (string paramID, double val) |
| Set parameter indexed by paramID. | |
| virtual void | setParam (int paramID, double val) |
| Set parameter indexed by paramID. | |
| virtual const ParameterVector & | getParams () const |
| Return a const reference to the paramter vector owned by the group. | |
| virtual double | getParam (int paramID) const |
| Return copy of parameter indexed by paramID. | |
| virtual double | getParam (string paramID) const |
| Return copy of parameter indexed by paramID. | |
| virtual NOX::Abstract::Group::ReturnType | computeDfDpMulti (const vector< int > ¶mIDs, NOX::Abstract::MultiVector &dfdp, bool isValidF) |
| virtual void | preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus) |
| Perform any preprocessing before a continuation step starts. | |
| virtual void | postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus) |
| Perform any postprocessing after a continuation step finishes. | |
| virtual void | projectToDraw (const NOX::Abstract::Vector &x, double *px) const |
| Projects solution to a few scalars for multiparameter continuation. | |
| virtual int | projectToDrawDimension () const |
| Returns the dimension of the project to draw array. | |
| virtual void | printSolution (const double conParam) const |
| Function to print out extended solution and continuation parameter after successful continuation step. | |
| virtual void | printSolution (const NOX::Abstract::Vector &x_, const double conParam) const |
| Function to print out extended solution and continuation parameter after successful continuation step. | |
Implementation of | |
| virtual int | getBorderedWidth () const |
| Return the total width of the bordered rows/columns. | |
|
virtual Teuchos::RefCountPtr< const NOX::Abstract::Group > | getUnborderedGroup () const |
| Get bottom-level unbordered group. | |
| virtual bool | isCombinedAZero () const |
| Indicates whether combined A block is zero. | |
| virtual bool | isCombinedBZero () const |
| Indicates whether combined B block is zero. | |
| virtual bool | isCombinedCZero () const |
| Indicates whether combined C block is zero. | |
| virtual void | extractSolutionComponent (const NOX::Abstract::MultiVector &v, NOX::Abstract::MultiVector &v_x) const |
| virtual void | extractParameterComponent (bool use_transpose, const NOX::Abstract::MultiVector &v, NOX::Abstract::MultiVector::DenseMatrix &v_p) const |
| virtual void | loadNestedComponents (const NOX::Abstract::MultiVector &v_x, const NOX::Abstract::MultiVector::DenseMatrix &v_p, NOX::Abstract::MultiVector &v) const |
| virtual void | fillA (NOX::Abstract::MultiVector &A) const |
| Fill the combined A block as described above. | |
| virtual void | fillB (NOX::Abstract::MultiVector &B) const |
| Fill the combined B block as described above. | |
| virtual void | fillC (NOX::Abstract::MultiVector::DenseMatrix &C) const |
| Fill the combined C block as described above. | |
Protected Member Functions | |
| void | setBifParam (double param) |
| Set bifurcation parameter. | |
| void | getInitialVectors (Teuchos::RefCountPtr< NOX::Abstract::Vector > &aVecPtr, Teuchos::RefCountPtr< NOX::Abstract::Vector > &bVecPtr, bool isSymmetric) |
| Computes initial "a" and "b" vectors. | |
Protected Attributes | |
| Teuchos::RefCountPtr< LOCA::GlobalData > | globalData |
| Pointer LOCA global data object. | |
| Teuchos::RefCountPtr< LOCA::Parameter::SublistParser > | parsedParams |
| Parsed top-level parameters. | |
| Teuchos::RefCountPtr< Teuchos::ParameterList > | turningPointParams |
| Bifurcation parameter list. | |
| Teuchos::RefCountPtr< LOCA::TurningPoint::MinimallyAugmented::AbstractGroup > | grpPtr |
Pointer to base group that defines . | |
| Teuchos::RefCountPtr< LOCA::TurningPoint::MinimallyAugmented::Constraint > | constraint |
| Pointer to the constraint equation. | |
| Teuchos::RefCountPtr< LOCA::MultiContinuation::ConstrainedGroup > | conGroup |
| Pointer to constrained group implementation. | |
| int | bifParamID |
| Stores the bifurcation parameter index. | |
The LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup is a concrete implementation of the NOX::Abstract::Group, LOCA::MultiContinuation::AbstractGroup and LOCA::Extended::MultiAbstractGroup that defines the following extended set of equations that are regular at a generic turning point:
where
,
is the solution vector,
is the bifurcation parameter,
is the Jacobian of
, and
is a measure of the singularity of
and is defined via
for any vectors
and
in
. Using these relationships, it is easy to show
The group stores an underlying group of type LOCA::TurningPoint::MinimallyAugmented::AbstractGroup to represent the equations
and to manipulate the underlying Jacobian
. This interface defines methods for computing the derivatives
and
as well.
This class implements all of the NOX::Abstract::Group, LOCA::MultiContinuation::AbstractGroup, and LOCA::Extended::MultiAbstractGroup methods for this extended set of equations and therefore is a complete group which can be passed to most NOX solvers to locate a single turning point or to the LOCA::Stepper to compute a family of turning points in a second parameter.
The class is intialized via the tpParams parameter list argument to the constructor. The parameters this class recognizes are:
is symmetric, in which case we force
and therefore the second tranpose solve for
is unnecessary
and
vectors. Valid choices are:
vector
vector
and
where
is the bifurcation parameter.
and
vectors via
and
every continuation step
and
vectors via
and
every nonlinear iteration
|
||||||||||||||||
|
Compute Implements LOCA::MultiContinuation::AbstractGroup. |
|
|
Compute the turning point equation residual This method fills the extended residual
Implements NOX::Abstract::Group. |
|
|
Compute the blocks of the Jacobian derivative of
This method computes the
Reimplemented from NOX::Abstract::Group. |
|
||||||||||||||||
|
Given the vector Implements LOCA::BorderedSystem::AbstractGroup. |
|
||||||||||||
|
Given the vector Implements LOCA::BorderedSystem::AbstractGroup. |
|
||||||||||||||||
|
Given the solution component Implements LOCA::BorderedSystem::AbstractGroup. |
|
|
Perform any postprocessing after a continuation step finishes.
The Reimplemented from LOCA::MultiContinuation::AbstractGroup. |
|
|
Perform any preprocessing before a continuation step starts.
The Reimplemented from LOCA::MultiContinuation::AbstractGroup. |
|
||||||||||||
|
Function to print out extended solution and continuation parameter after successful continuation step. This method prints the solution, null-vector, and parameter components of the extended solution vector using the printSolution method of the underlying group. Reimplemented from LOCA::MultiContinuation::AbstractGroup. |
|
|
Function to print out extended solution and continuation parameter after successful continuation step. This method prints the solution, null-vector, and parameter components of the extended solution vector using the printSolution method of the underlying group. Reimplemented from LOCA::MultiContinuation::AbstractGroup. |
1.3.9.1