#include <LOCA_TurningPoint_MooreSpence_ExtendedGroup.H>
Public Member Functions | |
ExtendedGroup (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &tpParams, const Teuchos::RCP< LOCA::TurningPoint::MooreSpence::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. | |
double | lTransNorm (const NOX::Abstract::Vector &n) const |
Defines null vector normalization ![]() | |
void | lTransNorm (const NOX::Abstract::MultiVector &n, NOX::Abstract::MultiVector::DenseMatrix &result) const |
null vector normalization for multivectors | |
Teuchos::RCP < NOX::Abstract::Vector > | getLengthVector () const |
Return length normalization vector. | |
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 |
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 |
Jacobian transpose product is not defined by this group. | |
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 using the bordering algorithm. | |
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 not defined for this 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 ![]() | |
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::RCP< const LOCA::MultiContinuation::AbstractGroup > | getUnderlyingGroup () const |
Return underlying group. | |
virtual Teuchos::RCP < 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 (int paramID, double val) |
Set parameter indexed by paramID. | |
virtual void | setParam (string 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 LOCA::Abstract::TransposeSolveGroup | |
virtual methods | |
virtual NOX::Abstract::Group::ReturnType | applyJacobianTransposeInverse (Teuchos::ParameterList ¶ms, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
Solve Jacobian-tranpose system. | |
virtual NOX::Abstract::Group::ReturnType | applyJacobianTransposeInverseMultiVector (Teuchos::ParameterList ¶ms, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const |
Solve Jacobian-tranpose system with multiple right-hand sides. | |
Protected Member Functions | |
void | setBifParam (double param) |
Set bifurcation parameter. | |
void | setupViews () |
Sets up multivector views. | |
void | init (bool perturbSoln=false, double perturbSize=0.0) |
Initializes group. | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Pointer LOCA global data object. | |
Teuchos::RCP < LOCA::Parameter::SublistParser > | parsedParams |
Parsed top-level parameters. | |
Teuchos::RCP < Teuchos::ParameterList > | turningPointParams |
Bifurcation parameter list. | |
Teuchos::RCP < LOCA::TurningPoint::MooreSpence::AbstractGroup > | grpPtr |
Pointer to base group that defines ![]() | |
LOCA::TurningPoint::MooreSpence::ExtendedMultiVector | xMultiVec |
Stores the extended solution vector. | |
LOCA::TurningPoint::MooreSpence::ExtendedMultiVector | fMultiVec |
Stores the extended residual vector and df/dp. | |
LOCA::TurningPoint::MooreSpence::ExtendedMultiVector | newtonMultiVec |
Stores the extended Newton vector. | |
Teuchos::RCP < NOX::Abstract::MultiVector > | lengthMultiVec |
Stores the length normalization vector. | |
Teuchos::RCP < LOCA::TurningPoint::MooreSpence::ExtendedVector > | xVec |
Stores view of first column of xMultiVec. | |
Teuchos::RCP < LOCA::TurningPoint::MooreSpence::ExtendedVector > | fVec |
Stores view of first column of fMultiVec. | |
Teuchos::RCP < LOCA::TurningPoint::MooreSpence::ExtendedMultiVector > | ffMultiVec |
Stores view of first column of fMultiVec as a multivec. | |
Teuchos::RCP < LOCA::TurningPoint::MooreSpence::ExtendedMultiVector > | dfdpMultiVec |
Stores view of df/dp columns of fMultiVec. | |
Teuchos::RCP < LOCA::TurningPoint::MooreSpence::ExtendedVector > | newtonVec |
Stores view of first column of newtonMultiVec. | |
Teuchos::RCP < NOX::Abstract::Vector > | lengthVec |
Stores view of first column of lengthMultiVec. | |
Teuchos::RCP < LOCA::TurningPoint::MooreSpence::SolverStrategy > | solverStrategy |
Stores bordering strategy. | |
vector< int > | index_f |
Stores indices for getting f part of fMultiVec. | |
vector< int > | index_dfdp |
Stores indices for getting df/dp part of fMultiVec. | |
vector< int > | bifParamID |
Stores the bifurcation parameter index. | |
bool | isValidF |
Is residual vector valid. | |
bool | isValidJacobian |
Is Jacobian matrix valid. | |
bool | isValidNewton |
Is Newton vector valid. | |
Private Member Functions | |
ExtendedGroup & | operator= (const ExtendedGroup &) |
Prohibit generation and use of operator=(). |
The LOCA::TurningPoint::MooreSpence::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 null vector,
is the length normalization vector and
is the Jacobian of F.
The group stores an underlying group of type LOCA::TurningPoint::MooreSpence AbstractGroup to represent the equations and to manipulate the underlying Jacobian
. Note that the entire extended Jacobian
is not stored in memory, rather a block-elimination algorithm (bordering algorithm) is used to compute linear solves of the extended Jacobian (see LOCA::TurningPoint::MooreSpence::SolverFactory for more details).
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.
However, Jacobian-tranpose operations and gradient calculations cannot be implemented efficiently and therefore gradient-base nonlinear solvers such as steepest descent and Trust region methods cannot be used to solve the extended turning point equations.
The class is intialized via the tpParams
parameter list argument to the constructor. The parameters this class recognizes are:
Definition at line 133 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
LOCA::TurningPoint::MooreSpence::ExtendedGroup::ExtendedGroup | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, | |
const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | |||
const Teuchos::RCP< Teuchos::ParameterList > & | tpParams, | |||
const Teuchos::RCP< LOCA::TurningPoint::MooreSpence::AbstractGroup > & | g | |||
) |
Constructor with initial data passed through parameter lists.
Definition at line 53 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, NOX::DeepCopy, LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getColumn(), LOCA::ParameterVector::getIndex(), globalData, grpPtr, init(), lengthMultiVec, parsedParams, setupViews(), solverStrategy, turningPointParams, and xMultiVec.
LOCA::TurningPoint::MooreSpence::ExtendedGroup::ExtendedGroup | ( | const ExtendedGroup & | source, | |
NOX::CopyType | type = NOX::DeepCopy | |||
) |
Copy constructor.
Definition at line 136 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References globalData, isValidF, isValidJacobian, isValidNewton, parsedParams, setupViews(), NOX::ShapeCopy, solverStrategy, and turningPointParams.
LOCA::TurningPoint::MooreSpence::ExtendedGroup::~ExtendedGroup | ( | ) | [virtual] |
NOX::Abstract::Group & LOCA::TurningPoint::MooreSpence::ExtendedGroup::operator= | ( | const NOX::Abstract::Group & | source | ) | [virtual] |
Assignment operator.
Implements NOX::Abstract::Group.
Definition at line 183 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References copy().
Teuchos::RCP< NOX::Abstract::Group > LOCA::TurningPoint::MooreSpence::ExtendedGroup::clone | ( | NOX::CopyType | type = NOX::DeepCopy |
) | const [virtual] |
Cloning function.
Implements NOX::Abstract::Group.
Definition at line 191 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::setX | ( | const NOX::Abstract::Vector & | y | ) | [virtual] |
Set the solution vector, x, to y.
Implements NOX::Abstract::Group.
Definition at line 200 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References LOCA::TurningPoint::MooreSpence::ExtendedVector::getXVec(), grpPtr, isValidF, isValidJacobian, isValidNewton, setBifParam(), and xVec.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::computeX | ( | const NOX::Abstract::Group & | g, | |
const NOX::Abstract::Vector & | d, | |||
double | step | |||
) | [virtual] |
Compute this.x = grp.x + step * d.
Implements NOX::Abstract::Group.
Definition at line 215 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References getX(), LOCA::TurningPoint::MooreSpence::ExtendedVector::getXVec(), grpPtr, isValidF, isValidJacobian, isValidNewton, setBifParam(), and xVec.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::computeF | ( | ) | [virtual] |
Compute the turning point equation residual .
This method fills the extended residual
The solution component residual and the null-vector residual
are calculated via the computeF and applyJacobian methods of the underlying group.
Implements NOX::Abstract::Group.
Definition at line 235 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References fVec, globalData, grpPtr, isValidF, lTransNorm(), NOX::Abstract::Group::Ok, and xVec.
Referenced by computeNewton().
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::computeJacobian | ( | ) | [virtual] |
Compute the blocks of the Jacobian derivative of .
This method computes the ,
, and
blocks of the extended Jacobian:
by calling the computeJacobian, computeDfDp, and computeDJnDp methods of the underlying group. The second derivative matrix is not calculated since only its action on vectors is needed for linear solves using the bordering algorithm.
Reimplemented from NOX::Abstract::Group.
Definition at line 278 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, dfdpMultiVec, fMultiVec, fVec, LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), globalData, grpPtr, isValidF, isValidJacobian, NOX::Abstract::Group::Ok, solverStrategy, and xVec.
Referenced by computeNewton().
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::computeGradient | ( | ) | [virtual] |
Gradient computation is not defined for this group.
Reimplemented from NOX::Abstract::Group.
Definition at line 325 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References NOX::Abstract::Group::NotDefined.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::computeNewton | ( | Teuchos::ParameterList & | params | ) | [virtual] |
Compute Newton direction using applyJacobianInverse().
Reimplemented from NOX::Abstract::Group.
Definition at line 331 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References computeF(), computeJacobian(), ffMultiVec, globalData, LOCA::Extended::MultiVector::init(), isF(), isJacobian(), isValidNewton, newtonMultiVec, NOX::Abstract::Group::Ok, LOCA::Extended::MultiVector::scale(), and solverStrategy.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobian | ( | const NOX::Abstract::Vector & | input, | |
NOX::Abstract::Vector & | result | |||
) | const [virtual] |
Computes the extended Jacobian vector product.
This method computes the extended Jacobian vector product
using the applyJacobian and computeDJnDxa methods of the underlying group where ,
, and
are the solution, null-vector, and paramter components of the given vector input. Vectors input and result must be of type LOCA::TurningPoint::MooreSpence::ExtendedVector, otherwise an error is thrown.
Reimplemented from NOX::Abstract::Group.
Definition at line 377 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References applyJacobianMultiVector(), NOX::Abstract::Vector::createMultiVector(), and NOX::DeepCopy.
Referenced by getNormNewtonSolveResidual().
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianTranspose | ( | const NOX::Abstract::Vector & | input, | |
NOX::Abstract::Vector & | result | |||
) | const [virtual] |
Jacobian transpose product is not defined by this group.
Reimplemented from NOX::Abstract::Group.
Definition at line 398 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References applyJacobianTransposeMultiVector(), NOX::Abstract::Vector::createMultiVector(), and NOX::DeepCopy.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianInverse | ( | Teuchos::ParameterList & | params, | |
const NOX::Abstract::Vector & | input, | |||
NOX::Abstract::Vector & | result | |||
) | const [virtual] |
Applies the inverse of the extended Jacobian matrix using the bordering algorithm.
This method is a special case of applyJacobianInverseMultiVector() for a single right-hand-side.
Reimplemented from NOX::Abstract::Group.
Definition at line 419 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References applyJacobianInverseMultiVector(), NOX::Abstract::Vector::createMultiVector(), and NOX::DeepCopy.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianMultiVector | ( | const NOX::Abstract::MultiVector & | input, | |
NOX::Abstract::MultiVector & | result | |||
) | const [virtual] |
Applies Jacobian for extended system.
Reimplemented from NOX::Abstract::Group.
Definition at line 441 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References dfdpMultiVec, fVec, LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::Extended::MultiVector::getScalars(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), globalData, grpPtr, isJacobian(), lTransNorm(), NOX::Abstract::Group::Ok, NOX::ShapeCopy, and xVec.
Referenced by applyJacobian().
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianTransposeMultiVector | ( | const NOX::Abstract::MultiVector & | input, | |
NOX::Abstract::MultiVector & | result | |||
) | const [virtual] |
Jacobian transpose not defined for this system.
Reimplemented from NOX::Abstract::Group.
Definition at line 530 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References dfdpMultiVec, LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::Extended::MultiVector::getScalars(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), globalData, grpPtr, isJacobian(), lengthMultiVec, lengthVec, NOX::Abstract::Group::Ok, NOX::ShapeCopy, and xVec.
Referenced by applyJacobianTranspose().
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianInverseMultiVector | ( | Teuchos::ParameterList & | params, | |
const NOX::Abstract::MultiVector & | input, | |||
NOX::Abstract::MultiVector & | result | |||
) | const [virtual] |
Applies Jacobian inverse for extended system.
Uses a LOCA::TurningPoint::MooreSpence::SolverStrategy instantiated by the LOCA::TurningPoint::MooreSpence::SolverFactory to implement the solve.
Reimplemented from NOX::Abstract::Group.
Definition at line 619 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References solverStrategy.
Referenced by applyJacobianInverse().
bool LOCA::TurningPoint::MooreSpence::ExtendedGroup::isF | ( | ) | const [virtual] |
Return true
if the extended residual is valid.
Implements NOX::Abstract::Group.
Definition at line 634 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References isValidF.
Referenced by computeNewton().
bool LOCA::TurningPoint::MooreSpence::ExtendedGroup::isJacobian | ( | ) | const [virtual] |
Return true
if the extended Jacobian is valid.
Reimplemented from NOX::Abstract::Group.
Definition at line 640 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References isValidJacobian.
Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), and computeNewton().
bool LOCA::TurningPoint::MooreSpence::ExtendedGroup::isGradient | ( | ) | const [virtual] |
Always returns false.
Reimplemented from NOX::Abstract::Group.
Definition at line 646 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
bool LOCA::TurningPoint::MooreSpence::ExtendedGroup::isNewton | ( | ) | const [virtual] |
Return true
if the extended Newton direction is valid.
Reimplemented from NOX::Abstract::Group.
Definition at line 652 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References isValidNewton.
const NOX::Abstract::Vector & LOCA::TurningPoint::MooreSpence::ExtendedGroup::getX | ( | ) | const [virtual] |
Return extended solution vector .
Implements NOX::Abstract::Group.
Definition at line 658 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References xVec.
Referenced by computeX().
const NOX::Abstract::Vector & LOCA::TurningPoint::MooreSpence::ExtendedGroup::getF | ( | ) | const [virtual] |
Return extended equation residual .
Implements NOX::Abstract::Group.
Definition at line 664 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References fVec.
double LOCA::TurningPoint::MooreSpence::ExtendedGroup::getNormF | ( | ) | const [virtual] |
Return 2-norm of .
Implements NOX::Abstract::Group.
Definition at line 670 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References fVec.
const NOX::Abstract::Vector & LOCA::TurningPoint::MooreSpence::ExtendedGroup::getGradient | ( | ) | const [virtual] |
Vector returned is not valid.
Implements NOX::Abstract::Group.
Definition at line 676 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References getNewton(), and globalData.
const NOX::Abstract::Vector & LOCA::TurningPoint::MooreSpence::ExtendedGroup::getNewton | ( | ) | const [virtual] |
Return extended Newton direction.
Implements NOX::Abstract::Group.
Definition at line 685 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References newtonVec.
Referenced by getGradient().
double LOCA::TurningPoint::MooreSpence::ExtendedGroup::getNormNewtonSolveResidual | ( | ) | const [virtual] |
Return the norm of the Newton solve residual.
Definition at line 691 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References applyJacobian(), fVec, globalData, newtonVec, LOCA::Extended::Vector::norm(), and LOCA::Extended::Vector::update().
Teuchos::RCP< const LOCA::MultiContinuation::AbstractGroup > LOCA::TurningPoint::MooreSpence::ExtendedGroup::getUnderlyingGroup | ( | ) | const [virtual] |
Return underlying group.
Implements LOCA::Extended::MultiAbstractGroup.
Definition at line 706 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
Teuchos::RCP< LOCA::MultiContinuation::AbstractGroup > LOCA::TurningPoint::MooreSpence::ExtendedGroup::getUnderlyingGroup | ( | ) | [virtual] |
Return underlying group.
Implements LOCA::Extended::MultiAbstractGroup.
Definition at line 712 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::copy | ( | const NOX::Abstract::Group & | source | ) | [virtual] |
Assignment operator.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 718 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, fMultiVec, globalData, grpPtr, index_dfdp, index_f, isValidF, isValidJacobian, isValidNewton, lengthMultiVec, newtonMultiVec, parsedParams, setupViews(), solverStrategy, turningPointParams, and xMultiVec.
Referenced by operator=().
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::setParamsMulti | ( | const vector< int > & | paramIDs, | |
const NOX::Abstract::MultiVector::DenseMatrix & | vals | |||
) | [virtual] |
Set parameters indexed by (integer) paramIDs.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 755 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, grpPtr, and setBifParam().
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::setParams | ( | const ParameterVector & | p | ) | [virtual] |
Set the parameter vector in the group to p.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 767 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, grpPtr, isValidF, isValidJacobian, isValidNewton, and setBifParam().
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::setParam | ( | int | paramID, | |
double | val | |||
) | [virtual] |
Set parameter indexed by paramID.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 779 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, grpPtr, and setBifParam().
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::setParam | ( | string | paramID, | |
double | val | |||
) | [virtual] |
Set parameter indexed by paramID.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 789 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, LOCA::ParameterVector::getIndex(), grpPtr, and setBifParam().
const LOCA::ParameterVector & LOCA::TurningPoint::MooreSpence::ExtendedGroup::getParams | ( | ) | const [virtual] |
Return a const reference to the paramter vector owned by the group.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 800 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
double LOCA::TurningPoint::MooreSpence::ExtendedGroup::getParam | ( | int | paramID | ) | const [virtual] |
Return copy of parameter indexed by paramID.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 806 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
double LOCA::TurningPoint::MooreSpence::ExtendedGroup::getParam | ( | string | paramID | ) | const [virtual] |
Return copy of parameter indexed by paramID.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 812 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::computeDfDpMulti | ( | const vector< int > & | paramIDs, | |
NOX::Abstract::MultiVector & | dfdp, | |||
bool | isValidF | |||
) | [virtual] |
Compute for each parameter
indexed by paramIDs. The first column of dfdp holds F, which is valid if isValidF is true. Otherwise F must be computed.
Implements LOCA::MultiContinuation::AbstractGroup.
Definition at line 818 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getNullMultiVec(), LOCA::Extended::MultiVector::getScalar(), LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getXMultiVec(), globalData, grpPtr, lTransNorm(), NOX::Abstract::MultiVector::numVectors(), NOX::Abstract::Group::Ok, and xVec.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::preProcessContinuationStep | ( | LOCA::Abstract::Iterator::StepStatus | stepStatus | ) | [virtual] |
Perform any preprocessing before a continuation step starts.
The stepStatus
argument indicates whether the previous step was successful.
Reimplemented from LOCA::MultiContinuation::AbstractGroup.
Definition at line 856 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::postProcessContinuationStep | ( | LOCA::Abstract::Iterator::StepStatus | stepStatus | ) | [virtual] |
Perform any postprocessing after a continuation step finishes.
The stepStatus
argument indicates whether the step was successful.
Reimplemented from LOCA::MultiContinuation::AbstractGroup.
Definition at line 863 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::projectToDraw | ( | const NOX::Abstract::Vector & | x, | |
double * | px | |||
) | const [virtual] |
Projects solution to a few scalars for multiparameter continuation.
Reimplemented from LOCA::MultiContinuation::AbstractGroup.
Definition at line 870 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References LOCA::TurningPoint::MooreSpence::ExtendedVector::getBifParam(), LOCA::TurningPoint::MooreSpence::ExtendedVector::getXVec(), and grpPtr.
int LOCA::TurningPoint::MooreSpence::ExtendedGroup::projectToDrawDimension | ( | ) | const [virtual] |
Returns the dimension of the project to draw array.
Reimplemented from LOCA::MultiContinuation::AbstractGroup.
Definition at line 882 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References grpPtr.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::printSolution | ( | const double | conParam | ) | const [virtual] |
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.
Definition at line 888 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References getBifParam(), globalData, grpPtr, NOX::Utils::StepperDetails, and xVec.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::printSolution | ( | const NOX::Abstract::Vector & | x_, | |
const double | conParam | |||
) | const [virtual] |
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.
Definition at line 913 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References LOCA::TurningPoint::MooreSpence::ExtendedVector::getBifParam(), LOCA::TurningPoint::MooreSpence::ExtendedVector::getNullVec(), LOCA::TurningPoint::MooreSpence::ExtendedVector::getXVec(), globalData, grpPtr, and NOX::Utils::StepperDetails.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianTransposeInverse | ( | Teuchos::ParameterList & | params, | |
const NOX::Abstract::Vector & | input, | |||
NOX::Abstract::Vector & | result | |||
) | const [virtual] |
Solve Jacobian-tranpose system.
Implements LOCA::Abstract::TransposeSolveGroup.
Definition at line 942 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References applyJacobianTransposeInverseMultiVector(), NOX::Abstract::Vector::createMultiVector(), and NOX::DeepCopy.
NOX::Abstract::Group::ReturnType LOCA::TurningPoint::MooreSpence::ExtendedGroup::applyJacobianTransposeInverseMultiVector | ( | Teuchos::ParameterList & | params, | |
const NOX::Abstract::MultiVector & | input, | |||
NOX::Abstract::MultiVector & | result | |||
) | const [virtual] |
Solve Jacobian-tranpose system with multiple right-hand sides.
Implements LOCA::Abstract::TransposeSolveGroup.
Definition at line 964 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References solverStrategy.
Referenced by applyJacobianTransposeInverse().
double LOCA::TurningPoint::MooreSpence::ExtendedGroup::getBifParam | ( | ) | const |
Get bifurcation parameter.
Definition at line 979 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, and grpPtr.
Referenced by init(), and printSolution().
double LOCA::TurningPoint::MooreSpence::ExtendedGroup::lTransNorm | ( | const NOX::Abstract::Vector & | n | ) | const |
Defines null vector normalization equation.
Definition at line 985 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References lengthVec.
Referenced by applyJacobianMultiVector(), computeDfDpMulti(), computeF(), and init().
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::lTransNorm | ( | const NOX::Abstract::MultiVector & | n, | |
NOX::Abstract::MultiVector::DenseMatrix & | result | |||
) | const |
null vector normalization for multivectors
Note: result should have 1 row and n.numVectors() columns.
Definition at line 992 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References lengthMultiVec, lengthVec, and NOX::Abstract::MultiVector::multiply().
Teuchos::RCP< NOX::Abstract::Vector > LOCA::TurningPoint::MooreSpence::ExtendedGroup::getLengthVector | ( | ) | const |
Return length normalization vector.
Definition at line 1000 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References lengthVec.
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::setBifParam | ( | double | param | ) | [protected] |
Set bifurcation parameter.
Definition at line 1008 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References bifParamID, grpPtr, isValidF, isValidJacobian, isValidNewton, and xVec.
Referenced by computeX(), setParam(), setParams(), setParamsMulti(), and setX().
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::setupViews | ( | ) | [protected] |
Sets up multivector views.
Definition at line 1019 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References dfdpMultiVec, ffMultiVec, fMultiVec, fVec, LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::getColumn(), index_dfdp, index_f, lengthMultiVec, lengthVec, newtonMultiVec, newtonVec, LOCA::TurningPoint::MooreSpence::ExtendedMultiVector::subView(), xMultiVec, and xVec.
Referenced by copy(), and ExtendedGroup().
void LOCA::TurningPoint::MooreSpence::ExtendedGroup::init | ( | bool | perturbSoln = false , |
|
double | perturbSize = 0.0 | |||
) | [protected] |
Initializes group.
Definition at line 1036 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.C.
References getBifParam(), globalData, grpPtr, lTransNorm(), NOX::ShapeCopy, NOX::Utils::StepperDetails, and xVec.
Referenced by ExtendedGroup().
ExtendedGroup& LOCA::TurningPoint::MooreSpence::ExtendedGroup::operator= | ( | const ExtendedGroup & | ) | [private] |
Prohibit generation and use of operator=().
Teuchos::RCP<LOCA::GlobalData> LOCA::TurningPoint::MooreSpence::ExtendedGroup::globalData [protected] |
Pointer LOCA global data object.
Definition at line 495 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeDfDpMulti(), computeF(), computeJacobian(), computeNewton(), copy(), ExtendedGroup(), getGradient(), getNormNewtonSolveResidual(), init(), and printSolution().
Teuchos::RCP<LOCA::Parameter::SublistParser> LOCA::TurningPoint::MooreSpence::ExtendedGroup::parsedParams [protected] |
Parsed top-level parameters.
Definition at line 498 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by copy(), and ExtendedGroup().
Teuchos::RCP<Teuchos::ParameterList> LOCA::TurningPoint::MooreSpence::ExtendedGroup::turningPointParams [protected] |
Bifurcation parameter list.
Definition at line 501 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by copy(), and ExtendedGroup().
Teuchos::RCP<LOCA::TurningPoint::MooreSpence::AbstractGroup> LOCA::TurningPoint::MooreSpence::ExtendedGroup::grpPtr [protected] |
Pointer to base group that defines .
Definition at line 504 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeDfDpMulti(), computeF(), computeJacobian(), computeX(), copy(), ExtendedGroup(), getBifParam(), getParam(), getParams(), getUnderlyingGroup(), init(), postProcessContinuationStep(), preProcessContinuationStep(), printSolution(), projectToDraw(), projectToDrawDimension(), setBifParam(), setParam(), setParams(), setParamsMulti(), and setX().
LOCA::TurningPoint::MooreSpence::ExtendedMultiVector LOCA::TurningPoint::MooreSpence::ExtendedGroup::xMultiVec [protected] |
Stores the extended solution vector.
Definition at line 507 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by copy(), ExtendedGroup(), and setupViews().
LOCA::TurningPoint::MooreSpence::ExtendedMultiVector LOCA::TurningPoint::MooreSpence::ExtendedGroup::fMultiVec [protected] |
Stores the extended residual vector and df/dp.
Definition at line 510 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by computeJacobian(), copy(), and setupViews().
LOCA::TurningPoint::MooreSpence::ExtendedMultiVector LOCA::TurningPoint::MooreSpence::ExtendedGroup::newtonMultiVec [protected] |
Stores the extended Newton vector.
Definition at line 513 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by computeNewton(), copy(), and setupViews().
Teuchos::RCP<NOX::Abstract::MultiVector> LOCA::TurningPoint::MooreSpence::ExtendedGroup::lengthMultiVec [protected] |
Stores the length normalization vector.
Definition at line 516 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianTransposeMultiVector(), copy(), ExtendedGroup(), lTransNorm(), and setupViews().
Teuchos::RCP<LOCA::TurningPoint::MooreSpence::ExtendedVector> LOCA::TurningPoint::MooreSpence::ExtendedGroup::xVec [protected] |
Stores view of first column of xMultiVec.
Definition at line 519 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeDfDpMulti(), computeF(), computeJacobian(), computeX(), getX(), init(), printSolution(), setBifParam(), setupViews(), and setX().
Teuchos::RCP<LOCA::TurningPoint::MooreSpence::ExtendedVector> LOCA::TurningPoint::MooreSpence::ExtendedGroup::fVec [protected] |
Stores view of first column of fMultiVec.
Definition at line 522 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianMultiVector(), computeF(), computeJacobian(), getF(), getNormF(), getNormNewtonSolveResidual(), and setupViews().
Teuchos::RCP<LOCA::TurningPoint::MooreSpence::ExtendedMultiVector> LOCA::TurningPoint::MooreSpence::ExtendedGroup::ffMultiVec [protected] |
Stores view of first column of fMultiVec as a multivec.
Definition at line 525 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by computeNewton(), and setupViews().
Teuchos::RCP<LOCA::TurningPoint::MooreSpence::ExtendedMultiVector> LOCA::TurningPoint::MooreSpence::ExtendedGroup::dfdpMultiVec [protected] |
Stores view of df/dp columns of fMultiVec.
Definition at line 528 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeJacobian(), and setupViews().
Teuchos::RCP<LOCA::TurningPoint::MooreSpence::ExtendedVector> LOCA::TurningPoint::MooreSpence::ExtendedGroup::newtonVec [protected] |
Stores view of first column of newtonMultiVec.
Definition at line 531 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by getNewton(), getNormNewtonSolveResidual(), and setupViews().
Teuchos::RCP<NOX::Abstract::Vector> LOCA::TurningPoint::MooreSpence::ExtendedGroup::lengthVec [protected] |
Stores view of first column of lengthMultiVec.
Definition at line 534 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianTransposeMultiVector(), getLengthVector(), lTransNorm(), and setupViews().
Teuchos::RCP<LOCA::TurningPoint::MooreSpence::SolverStrategy> LOCA::TurningPoint::MooreSpence::ExtendedGroup::solverStrategy [protected] |
Stores bordering strategy.
Definition at line 537 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by applyJacobianInverseMultiVector(), applyJacobianTransposeInverseMultiVector(), computeJacobian(), computeNewton(), copy(), and ExtendedGroup().
vector<int> LOCA::TurningPoint::MooreSpence::ExtendedGroup::index_f [protected] |
Stores indices for getting f part of fMultiVec.
Definition at line 540 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by copy(), and setupViews().
vector<int> LOCA::TurningPoint::MooreSpence::ExtendedGroup::index_dfdp [protected] |
Stores indices for getting df/dp part of fMultiVec.
Definition at line 543 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by copy(), and setupViews().
vector<int> LOCA::TurningPoint::MooreSpence::ExtendedGroup::bifParamID [protected] |
Stores the bifurcation parameter index.
Definition at line 546 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by computeJacobian(), copy(), ExtendedGroup(), getBifParam(), setBifParam(), setParam(), setParams(), and setParamsMulti().
bool LOCA::TurningPoint::MooreSpence::ExtendedGroup::isValidF [protected] |
Is residual vector valid.
Definition at line 549 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by computeF(), computeJacobian(), computeX(), copy(), ExtendedGroup(), isF(), setBifParam(), setParams(), and setX().
bool LOCA::TurningPoint::MooreSpence::ExtendedGroup::isValidJacobian [protected] |
Is Jacobian matrix valid.
Definition at line 552 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by computeJacobian(), computeX(), copy(), ExtendedGroup(), isJacobian(), setBifParam(), setParams(), and setX().
bool LOCA::TurningPoint::MooreSpence::ExtendedGroup::isValidNewton [protected] |
Is Newton vector valid.
Definition at line 555 of file LOCA_TurningPoint_MooreSpence_ExtendedGroup.H.
Referenced by computeNewton(), computeX(), copy(), ExtendedGroup(), isNewton(), setBifParam(), setParams(), and setX().