#include <LOCA_Bifurcation_PitchforkBord_ExtendedGroup.H>
Inheritance diagram for LOCA::Bifurcation::PitchforkBord::ExtendedGroup:
Public Member Functions | |
| ExtendedGroup (LOCA::Bifurcation::TPBord::AbstractGroup &g, NOX::Parameter::List &bifParamList) | |
| Constructor with initial data passed through parameter lists. | |
| ExtendedGroup (LOCA::Bifurcation::TPBord::AbstractGroup &g, const NOX::Abstract::Vector &asymVec, const NOX::Abstract::Vector &lenVec, const NOX::Abstract::Vector &nullVec, int paramId=0) | |
| Constructor to set the base group, bifurcation paramter, length vector. | |
| ExtendedGroup (const LOCA::Bifurcation::TPBord::AbstractGroup &g, const NOX::Abstract::Vector &asymVec, const NOX::Abstract::Vector &lenVec, const NOX::Abstract::Vector &nullVec, int paramId=0) | |
| Constructor to set the base group, bifurcation paramter, length vector. | |
| ExtendedGroup (const ExtendedGroup &source, NOX::CopyType type=NOX::DeepCopy) | |
| Copy constructor. | |
| virtual | ~ExtendedGroup () |
| Destructor. | |
| virtual NOX::Abstract::Group & | operator= (const NOX::Abstract::Group &source) |
| Assignment operator. | |
| virtual LOCA::Continuation::AbstractGroup & | operator= (const LOCA::Continuation::AbstractGroup &source) |
| Assignment operator. | |
| virtual LOCA::Extended::AbstractGroup & | operator= (const LOCA::Extended::AbstractGroup &source) |
| Assignment operator. | |
| virtual ExtendedGroup & | operator= (const ExtendedGroup &source) |
| Assignment operator. | |
| virtual NOX::Abstract::Group * | clone (NOX::CopyType type=NOX::DeepCopy) const |
| Cloning function. | |
| virtual void | setParams (const ParameterVector &p) |
| Set the parameter list in the group to p (pVector = p). | |
| virtual const ParameterVector & | getParams () const |
| Return a const reference to the ParameterVector owned by the group. | |
| virtual void | setParam (int paramID, double val) |
| Set parameter indexed by paramID. | |
| virtual double | getParam (int paramID) const |
| Return copy of parameter indexed by paramID. | |
| virtual void | setParam (string paramID, double val) |
| Set parameter indexed by paramID. | |
| virtual double | getParam (string paramID) const |
| Return copy of parameter indexed by paramID. | |
| virtual NOX::Abstract::Group::ReturnType | computeDfDp (int paramID, NOX::Abstract::Vector &result) |
Compute for the extended system. | |
| virtual void | printSolution (const double conParam) const |
| Calls groups print function for solution vector null vec, and params. | |
| virtual void | printSolution (const NOX::Abstract::Vector &x_, const double conParam) const |
| Calls groups print function for solution vector null vec, and params. | |
| virtual const LOCA::Continuation::AbstractGroup & | getUnderlyingGroup () const |
| Return underlying group. | |
| virtual LOCA::Continuation::AbstractGroup & | getUnderlyingGroup () |
| Return underlying group. | |
"Compute" functions. | |
| virtual void | setX (const NOX::Abstract::Vector &y) |
| Set the solution vector, x, to y. | |
| virtual void | setX (const LOCA::Bifurcation::PitchforkBord::ExtendedVector &y) |
| Set the solution vector, x, to y. | |
| 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 ExtendedGroup &g, const LOCA::Bifurcation::PitchforkBord::ExtendedVector &d, double step) |
| Compute and return solution vector, x, where this.x = grp.x + step * d. | |
| virtual NOX::Abstract::Group::ReturnType | computeF () |
| Compute the turning point equation residual $G$. | |
| virtual NOX::Abstract::Group::ReturnType | computeJacobian () |
| Compute the blocks of the Jacobian derivative of $G$. | |
| virtual NOX::Abstract::Group::ReturnType | computeGradient () |
| Gradient computation is not defined for this group. | |
| virtual NOX::Abstract::Group::ReturnType | computeNewton (NOX::Parameter::List ¶ms) |
| Compute Newton direction using bordering algorithm. | |
Jacobian operations. | |
| 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 |
| Jacobian transpose product is not defined by this group. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianInverse (NOX::Parameter::List ¶ms, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Applies the inverse of the extended Jacobian matrix using the bordering algorithm. | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianInverseMulti (NOX::Parameter::List ¶ms, const NOX::Abstract::Vector *const *inputs, NOX::Abstract::Vector **results, int nVecs) const |
| Applies the inverse of the extended Jacobian matrix using the bordering algorithm for multiple right-hand sides. | |
"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 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. | |
"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::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. | |
Protected Member Functions | |
| void | init (bool perturbSoln=false, double perturbSize=0.0) |
| Initializes group. | |
| double | getBifParam () const |
| Get bifurcation parameter. | |
| void | setBifParam (double param) |
| Set bifurcation parameter. | |
| double | lTransNorm (const NOX::Abstract::Vector &n) const |
Defines null vector normalization . | |
Protected Attributes | |
| LOCA::Bifurcation::TPBord::AbstractGroup * | grpPtr |
| LOCA::Bifurcation::PitchforkBord::ExtendedVector | pfXVec |
| Stores the turning point solution vector. | |
| LOCA::Bifurcation::PitchforkBord::ExtendedVector | pfFVec |
| Stores the turning point residual vector. | |
| LOCA::Bifurcation::PitchforkBord::ExtendedVector | pfNewtonVec |
| Stores the turning point Newton vector. | |
| NOX::Abstract::Vector * | asymVecPtr |
| Stores the asymmetry vector. | |
| NOX::Abstract::Vector * | lengthVecPtr |
| Stores the constant length vector. | |
| int | bifParamId |
| Stores the bifurcation parameter index. | |
| NOX::Abstract::Vector * | derivResidualParamPtr |
| Stores the derivative of the solution residual w.r.t. bifparam. | |
| NOX::Abstract::Vector * | derivNullResidualParamPtr |
| Stores the derivative of the null vector residual w.r.t. bifparam. | |
| bool | ownsGroup |
| Flag indicating whether we have our own copy of the underlying group. | |
| bool | isValidF |
| Is residual vector valid. | |
| bool | isValidJacobian |
| Is Jacobian matrix valid. | |
| bool | isValidNewton |
| Is Newton vector valid. | |
The PitchforkBord::Group is a concrete implementation of the LOCA::Continuation::GroupInterface that defines the following extended set of equations:
where
,
is the solution vector,
is the null vector,
is the antisymmetric vector,
is the slack variables representing the asymmetry in the problem,
is the length normalization vector and
is the Jacobian of F.
This class implements all of the NOX::Abstract::Group and LOCA::Continuation::GroupInterface methods for this extended set of equations. Newton solves are computed by the bordering algorithm.
|
|
Compute the blocks of the Jacobian derivative of $G$. Certain second derivatives such as (Jn)_x are not calculated since only their action on vectors are needed for later solves. Reimplemented from NOX::Abstract::Group. |
|
|
Stores the underlying group, which stores the solution vector, jacobian, and solution residual |
1.3.9.1