LOCA::Homotopy::DeflatedGroup Class Reference

LOCA's Homotopy Algorithm. More...

#include <LOCA_Homotopy_DeflatedGroup.H>

Inheritance diagram for LOCA::Homotopy::DeflatedGroup:

Inheritance graph
[legend]
Collaboration diagram for LOCA::Homotopy::DeflatedGroup:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 DeflatedGroup (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< Teuchos::ParameterList > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &hParams, const Teuchos::RCP< LOCA::Homotopy::AbstractGroup > &grp, const Teuchos::RCP< const NOX::Abstract::Vector > &start_vec, const std::vector< Teuchos::RCP< const NOX::Abstract::Vector > > &prev_solns, const double identity_sign=1.0)
 Constructor.
 DeflatedGroup (const DeflatedGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~DeflatedGroup ()
 Destructor.
double getHomotopyParam () const
 Get homotopy parameter.
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.
virtual void setX (const NOX::Abstract::Vector &y)
 Set the solution vector 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
NOX::Abstract::Group::ReturnType 
computeF ()
 Compute extended continuation equations.
virtual
NOX::Abstract::Group::ReturnType 
computeJacobian ()
 Compute extended continuation jacobian.
virtual
NOX::Abstract::Group::ReturnType 
computeGradient ()
 Gradient is not defined for this system.
virtual
NOX::Abstract::Group::ReturnType 
computeNewton (Teuchos::ParameterList &params)
 Compute Newton direction for extended continuation system.
virtual
NOX::Abstract::Group::ReturnType 
applyJacobian (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies Jacobian for extended system.
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianTranspose (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Jacobian transpose not defined for this system.
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianInverse (Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies Jacobian inverse for extended system.
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 &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Applies Jacobian inverse for extended system.
virtual bool isF () const
 Return true if 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 residual.
virtual double getNormF () const
 Return 2-norm of extended residual.
virtual const
NOX::Abstract::Vector
getGradient () const
 Gradient is never valid.
virtual const
NOX::Abstract::Vector
getNewton () const
 Return extended Newton direction.
virtual double getNormNewtonSolveResidual () const
 Returns 2-norm of extended 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 > &paramIDs, 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 (pVector = p).
virtual void setParam (int paramID, double val)
 Set parameter indexed by (integer) paramID.
virtual void setParam (string paramID, double val)
 Set parameter indexed by (string) paramID.
virtual const ParameterVectorgetParams () const
 Return a const reference to the ParameterVector owned by the group.
virtual double getParam (int paramID) const
 Return copy of parameter indexed by (integer) paramID.
virtual double getParam (string paramID) const
 Return copy of parameter indexed by (string) paramID.
virtual
NOX::Abstract::Group::ReturnType 
computeDfDpMulti (const vector< int > &paramIDs, 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 double computeScaledDotProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute a scaled dot product.
virtual void printSolution (const double conParam) const
 Function to print out solution and parameter after successful step.
virtual void printSolution (const NOX::Abstract::Vector &x, const double conParam) const
 Function to print out a vector and parameter after successful step.
virtual void scaleVector (NOX::Abstract::Vector &x) const
 Scales a vector using scaling vector.
Implementation of
virtual int getBorderedWidth () const
 Return the total width of the bordered rows/columns.
virtual Teuchos::RCP< 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

virtual void resetIsValid ()
 Resets all isValid flags to false.
virtual void setupViews ()
 Sets up multivector views.
void setHomotopyParam (double param)
 Set homotopy parameter.
void setStepperParameters (Teuchos::ParameterList &topParams)
 Creates and sets the "Stepper" parameter sublist.

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 Pointer LOCA global data object.
Teuchos::RCP
< LOCA::Parameter::SublistParser
parsedParams
 Parsed top-level parameters.
Teuchos::RCP
< Teuchos::ParameterList > 
homotopyParams
 Pitchfork parameter list.
Teuchos::RCP
< LOCA::Homotopy::AbstractGroup
grpPtr
 Pointer to base group that defines $F$.
Teuchos::RCP
< LOCA::BorderedSystem::AbstractGroup
bordered_grp
 Pointer to base group as a bordered group.
LOCA::MultiContinuation::ExtendedMultiVector xMultiVec
 Stores the extended solution vector.
LOCA::MultiContinuation::ExtendedMultiVector fMultiVec
 Stores the extended residual vector.
LOCA::MultiContinuation::ExtendedMultiVector newtonMultiVec
 Stores the extended Newton vector.
LOCA::MultiContinuation::ExtendedMultiVector gradientMultiVec
 Stores the extended gradient vector.
Teuchos::RCP
< LOCA::MultiContinuation::ExtendedVector
xVec
 Stores view of first column of xMultiVec.
Teuchos::RCP
< LOCA::MultiContinuation::ExtendedVector
fVec
 Stores view of first column of fMultiVec.
Teuchos::RCP
< LOCA::MultiContinuation::ExtendedVector
newtonVec
 Stores view of first column of newtonMultiVec.
Teuchos::RCP
< LOCA::MultiContinuation::ExtendedVector
gradientVec
 Stores view of first column of gradientMultiVec.
Teuchos::RCP< const
NOX::Abstract::Vector
startVec
 Stores the starting vector, $ x^\ast $.
double identitySign
std::vector< Teuchos::RCP
< const NOX::Abstract::Vector > > 
solns
 Stores array of deflated solution vectors.
Teuchos::RCP
< NOX::Abstract::Vector
distVec
 Temporary vector for storing distance.
Teuchos::RCP
< NOX::Abstract::MultiVector
totalDistMultiVec
 Temporary vector for storing sum of distances.
Teuchos::RCP
< NOX::Abstract::Vector
totalDistVec
 Temporary vector for storing sum of distances.
Teuchos::RCP
< NOX::Abstract::MultiVector
underlyingF
 underlying group's F vector as a multivector
Teuchos::RCP
< LOCA::BorderedSolver::JacobianOperator
jacOp
Teuchos::RCP
< LOCA::BorderedSolver::AbstractStrategy
borderedSolver
 Stores bordered solver strategy.
Teuchos::RCP
< NOX::Abstract::MultiVector::DenseMatrix
minusOne
 Stores -1.
int numSolns
 Number of previous solutions.
std::vector< double > distances
 Array of distances from previous solutions.
double distProd
 Product of distances.
vector< int > index_f
 Stores indices for getting f part of fMultiVec.
LOCA::ParameterVector paramVec
 Copy of the ParameterVector for the underlying grpPtr.
double conParam
 Value of the homotopy continuation parameter.
int conParamID
 Continuatioin parameter ID number from the ParameterVector.
const string conParamLabel
 Contains the string used to identify the homotopy parameter in the ParameterVector object.
bool augmentJacForHomotopyNotImplemented
 Tracks whether the LOCA::Homotopy::Group method augmentJacobianForHomotopy is implemented. If not, the augmentation is applied during the applyJacobian assuming a matrix-free implementation.
bool isValidF
 Is residual vector valid.
bool isValidJacobian
 Is Jacobian matrix valid.
bool isValidNewton
 Is Newton vector valid.
bool isValidGradient
 Is Gradient vector valid.
bool isBordered
 Flag that indicates whether underlying group is a bordered group.

Private Member Functions

DeflatedGroupoperator= (const DeflatedGroup &source)
 Prevent generation and use of operator=().


Detailed Description

LOCA's Homotopy Algorithm.

The HomotopyGroup is a concrete implementation of the LOCA::Continuation::AbstractGroup that modifies the set of nonlinear equations to be solved to allow for Homotopy to be applied to the system. This object should be used in conjunction with the LOCA::Stepper object to drive the continuation. This algorithm solves a system of nonlinear equations supplied by the user ($ F(x) $) through continuation. An artificial parameter $ \lambda $ is used to control the continuation. The idea is to solve a simple equation starting at $ \lambda $ = 0 and, using the solution from the previous step, solve systems of equations that gets progressively closer to the true system of interest ( at $ \lambda $ = 1.0 we recover the original equations $ F(x) $). By constraining the definition of $ g(x, \lambda) $ and using artificial parameter contiuation, the continuation branch should be free of multiplicity and bifurcation phenomena.

The modified system of equations, $ g(x, \lambda) $, supplied by the HomotopyGroup is defined as:

\[ g(x, \lambda) = \lambda F(x) + (1.0 - \lambda)(x - a)(S) \]

where $x$ is the solution vector, $ \lambda $ is an artificial parameter, $ F(x) $ is the set of nonlinear equations the user supplies, $ g(x) $ is the corresponding set of homotopy equations that LOCA will solve, $ a $ is a random vector, and $ S $ is a scaling factor used to switch sign of the last term (typically valued 1.0 or -1.0).

This group requires the loca Stepper for continuation from $ \lambda $ = 0.0 (a simple set of equations to solve) to $ \lambda $ = 1.0 (the set of equations requested by the user, $ F(x) $). The Homotopy::Group will generate the Stepper parameter sublist in the parameter list that is passed in to the constructor. The user is free to modify this list (it sets default values) before passing it into the stepper object but should NOT change the starting and stopping values for the continuation parameter.

References:

Definition at line 124 of file LOCA_Homotopy_DeflatedGroup.H.


Constructor & Destructor Documentation

LOCA::Homotopy::DeflatedGroup::DeflatedGroup ( const Teuchos::RCP< LOCA::GlobalData > &  global_data,
const Teuchos::RCP< Teuchos::ParameterList > &  topParams,
const Teuchos::RCP< Teuchos::ParameterList > &  hParams,
const Teuchos::RCP< LOCA::Homotopy::AbstractGroup > &  grp,
const Teuchos::RCP< const NOX::Abstract::Vector > &  start_vec,
const std::vector< Teuchos::RCP< const NOX::Abstract::Vector > > &  prev_solns,
const double  identity_sign = 1.0 
)

Constructor.

Parameters:
global_data [in] Global data object
topParams [in] Parsed top-level parameter list.
hParams [in] Homotopy parameters
grp [in] Group representing $f$.

Definition at line 57 of file LOCA_Homotopy_DeflatedGroup.C.

References LOCA::ParameterVector::addParameter(), bordered_grp, borderedSolver, conParam, conParamID, conParamLabel, LOCA::ParameterVector::getIndex(), globalData, grpPtr, homotopyParams, isBordered, minusOne, paramVec, parsedParams, setStepperParameters(), setupViews(), startVec, and xVec.

Referenced by clone().

LOCA::Homotopy::DeflatedGroup::DeflatedGroup ( const DeflatedGroup source,
NOX::CopyType  type = NOX::DeepCopy 
)

LOCA::Homotopy::DeflatedGroup::~DeflatedGroup (  )  [virtual]

Destructor.

Definition at line 220 of file LOCA_Homotopy_DeflatedGroup.C.


Member Function Documentation

double LOCA::Homotopy::DeflatedGroup::getHomotopyParam (  )  const

Get homotopy parameter.

Definition at line 226 of file LOCA_Homotopy_DeflatedGroup.C.

References conParam.

NOX::Abstract::Group & LOCA::Homotopy::DeflatedGroup::operator= ( const NOX::Abstract::Group source  )  [virtual]

Assignment operator.

Implements NOX::Abstract::Group.

Definition at line 233 of file LOCA_Homotopy_DeflatedGroup.C.

References copy().

Teuchos::RCP< NOX::Abstract::Group > LOCA::Homotopy::DeflatedGroup::clone ( NOX::CopyType  type = NOX::DeepCopy  )  const [virtual]

Clone function.

Implements NOX::Abstract::Group.

Definition at line 241 of file LOCA_Homotopy_DeflatedGroup.C.

References DeflatedGroup().

void LOCA::Homotopy::DeflatedGroup::setX ( const NOX::Abstract::Vector y  )  [virtual]

Set the solution vector to y.

Implements NOX::Abstract::Group.

Definition at line 248 of file LOCA_Homotopy_DeflatedGroup.C.

References LOCA::MultiContinuation::ExtendedVector::getXVec(), grpPtr, resetIsValid(), and xVec.

void LOCA::Homotopy::DeflatedGroup::computeX ( const NOX::Abstract::Group g,
const NOX::Abstract::Vector d,
double  step 
) [virtual]

Compute and return solution vector, x, where this.x = grp.x + step * d.

Implements NOX::Abstract::Group.

Definition at line 261 of file LOCA_Homotopy_DeflatedGroup.C.

References getX(), LOCA::MultiContinuation::ExtendedVector::getXVec(), grpPtr, resetIsValid(), and xVec.

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::computeF (  )  [virtual]

Compute extended continuation equations.

Implements NOX::Abstract::Group.

Definition at line 278 of file LOCA_Homotopy_DeflatedGroup.C.

References conParam, distances, distProd, distVec, fVec, globalData, grpPtr, isValidF, numSolns, NOX::Abstract::Group::Ok, solns, and startVec.

Referenced by computeGradient(), and computeNewton().

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::computeJacobian (  )  [virtual]

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::computeGradient (  )  [virtual]

Gradient is not defined for this system.

Reimplemented from NOX::Abstract::Group.

Definition at line 371 of file LOCA_Homotopy_DeflatedGroup.C.

References applyJacobianTranspose(), computeF(), computeJacobian(), fVec, globalData, gradientVec, isF(), isJacobian(), isValidGradient, and NOX::Abstract::Group::Ok.

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::computeNewton ( Teuchos::ParameterList &  params  )  [virtual]

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::applyJacobian ( const NOX::Abstract::Vector input,
NOX::Abstract::Vector result 
) const [virtual]

Applies Jacobian for extended system.

Reimplemented from NOX::Abstract::Group.

Definition at line 460 of file LOCA_Homotopy_DeflatedGroup.C.

References applyJacobianMultiVector(), NOX::Abstract::Vector::createMultiVector(), and NOX::DeepCopy.

Referenced by getNormNewtonSolveResidual().

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::applyJacobianTranspose ( const NOX::Abstract::Vector input,
NOX::Abstract::Vector result 
) const [virtual]

Jacobian transpose not defined for this system.

Reimplemented from NOX::Abstract::Group.

Definition at line 481 of file LOCA_Homotopy_DeflatedGroup.C.

References applyJacobianTransposeMultiVector(), NOX::Abstract::Vector::createMultiVector(), and NOX::DeepCopy.

Referenced by computeGradient().

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::applyJacobianInverse ( Teuchos::ParameterList &  params,
const NOX::Abstract::Vector input,
NOX::Abstract::Vector result 
) const [virtual]

Applies Jacobian inverse for extended system.

Reimplemented from NOX::Abstract::Group.

Definition at line 502 of file LOCA_Homotopy_DeflatedGroup.C.

References applyJacobianInverseMultiVector(), NOX::Abstract::Vector::createMultiVector(), and NOX::DeepCopy.

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::applyJacobianMultiVector ( const NOX::Abstract::MultiVector input,
NOX::Abstract::MultiVector result 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::applyJacobianTransposeMultiVector ( const NOX::Abstract::MultiVector input,
NOX::Abstract::MultiVector result 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::applyJacobianInverseMultiVector ( Teuchos::ParameterList &  params,
const NOX::Abstract::MultiVector input,
NOX::Abstract::MultiVector result 
) const [virtual]

bool LOCA::Homotopy::DeflatedGroup::isF (  )  const [virtual]

Return true if extended residual is valid.

Implements NOX::Abstract::Group.

Definition at line 673 of file LOCA_Homotopy_DeflatedGroup.C.

References isValidF.

Referenced by computeGradient(), and computeNewton().

bool LOCA::Homotopy::DeflatedGroup::isJacobian (  )  const [virtual]

Return true if the extended Jacobian is valid.

Reimplemented from NOX::Abstract::Group.

Definition at line 680 of file LOCA_Homotopy_DeflatedGroup.C.

References isValidJacobian.

Referenced by applyJacobianInverseMultiVector(), applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeGradient(), and computeNewton().

bool LOCA::Homotopy::DeflatedGroup::isGradient (  )  const [virtual]

Always returns false.

Reimplemented from NOX::Abstract::Group.

Definition at line 687 of file LOCA_Homotopy_DeflatedGroup.C.

References isValidGradient.

bool LOCA::Homotopy::DeflatedGroup::isNewton (  )  const [virtual]

Return true if the extended Newton direction is valid.

Reimplemented from NOX::Abstract::Group.

Definition at line 694 of file LOCA_Homotopy_DeflatedGroup.C.

References isValidNewton.

const NOX::Abstract::Vector & LOCA::Homotopy::DeflatedGroup::getX (  )  const [virtual]

Return extended solution vector.

Implements NOX::Abstract::Group.

Definition at line 701 of file LOCA_Homotopy_DeflatedGroup.C.

References xVec.

Referenced by computeX().

const NOX::Abstract::Vector & LOCA::Homotopy::DeflatedGroup::getF (  )  const [virtual]

Return extended residual.

Implements NOX::Abstract::Group.

Definition at line 708 of file LOCA_Homotopy_DeflatedGroup.C.

References fVec.

double LOCA::Homotopy::DeflatedGroup::getNormF (  )  const [virtual]

Return 2-norm of extended residual.

Implements NOX::Abstract::Group.

Definition at line 715 of file LOCA_Homotopy_DeflatedGroup.C.

References fVec.

const NOX::Abstract::Vector & LOCA::Homotopy::DeflatedGroup::getGradient (  )  const [virtual]

Gradient is never valid.

Implements NOX::Abstract::Group.

Definition at line 722 of file LOCA_Homotopy_DeflatedGroup.C.

References gradientVec.

const NOX::Abstract::Vector & LOCA::Homotopy::DeflatedGroup::getNewton (  )  const [virtual]

Return extended Newton direction.

Implements NOX::Abstract::Group.

Definition at line 729 of file LOCA_Homotopy_DeflatedGroup.C.

References newtonVec.

double LOCA::Homotopy::DeflatedGroup::getNormNewtonSolveResidual (  )  const [virtual]

Returns 2-norm of extended Newton solve residual.

Definition at line 736 of file LOCA_Homotopy_DeflatedGroup.C.

References applyJacobian(), fVec, globalData, newtonVec, LOCA::Extended::Vector::norm(), and LOCA::Extended::Vector::update().

Teuchos::RCP< const LOCA::MultiContinuation::AbstractGroup > LOCA::Homotopy::DeflatedGroup::getUnderlyingGroup (  )  const [virtual]

Return underlying group.

Implements LOCA::Extended::MultiAbstractGroup.

Definition at line 752 of file LOCA_Homotopy_DeflatedGroup.C.

References grpPtr.

Teuchos::RCP< LOCA::MultiContinuation::AbstractGroup > LOCA::Homotopy::DeflatedGroup::getUnderlyingGroup (  )  [virtual]

Return underlying group.

Implements LOCA::Extended::MultiAbstractGroup.

Definition at line 759 of file LOCA_Homotopy_DeflatedGroup.C.

References grpPtr.

void LOCA::Homotopy::DeflatedGroup::copy ( const NOX::Abstract::Group source  )  [virtual]

void LOCA::Homotopy::DeflatedGroup::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 824 of file LOCA_Homotopy_DeflatedGroup.C.

References conParam, conParamID, grpPtr, paramVec, and resetIsValid().

void LOCA::Homotopy::DeflatedGroup::setParams ( const ParameterVector p  )  [virtual]

Set the parameter vector in the group to p (pVector = p).

Implements LOCA::MultiContinuation::AbstractGroup.

Definition at line 840 of file LOCA_Homotopy_DeflatedGroup.C.

References conParamID, grpPtr, resetIsValid(), and xVec.

void LOCA::Homotopy::DeflatedGroup::setParam ( int  paramID,
double  val 
) [virtual]

Set parameter indexed by (integer) paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

Definition at line 850 of file LOCA_Homotopy_DeflatedGroup.C.

References conParam, conParamID, grpPtr, paramVec, and resetIsValid().

Referenced by setParam().

void LOCA::Homotopy::DeflatedGroup::setParam ( string  paramID,
double  val 
) [virtual]

Set parameter indexed by (string) paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

Definition at line 862 of file LOCA_Homotopy_DeflatedGroup.C.

References LOCA::ParameterVector::getIndex(), paramVec, and setParam().

const LOCA::ParameterVector & LOCA::Homotopy::DeflatedGroup::getParams (  )  const [virtual]

Return a const reference to the ParameterVector owned by the group.

Implements LOCA::MultiContinuation::AbstractGroup.

Definition at line 870 of file LOCA_Homotopy_DeflatedGroup.C.

References paramVec.

double LOCA::Homotopy::DeflatedGroup::getParam ( int  paramID  )  const [virtual]

Return copy of parameter indexed by (integer) paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

Definition at line 877 of file LOCA_Homotopy_DeflatedGroup.C.

References paramVec.

double LOCA::Homotopy::DeflatedGroup::getParam ( string  paramID  )  const [virtual]

Return copy of parameter indexed by (string) paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

Definition at line 883 of file LOCA_Homotopy_DeflatedGroup.C.

References LOCA::ParameterVector::getValue(), and paramVec.

NOX::Abstract::Group::ReturnType LOCA::Homotopy::DeflatedGroup::computeDfDpMulti ( const vector< int > &  paramIDs,
NOX::Abstract::MultiVector dfdp,
bool  isValidF 
) [virtual]

Compute $\partial F/\partial p$ for each parameter $p$ 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 890 of file LOCA_Homotopy_DeflatedGroup.C.

References conParam, conParamID, distProd, distVec, LOCA::Extended::MultiVector::getScalars(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), globalData, grpPtr, NOX::Abstract::Group::Ok, and startVec.

void LOCA::Homotopy::DeflatedGroup::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 954 of file LOCA_Homotopy_DeflatedGroup.C.

References grpPtr.

void LOCA::Homotopy::DeflatedGroup::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 961 of file LOCA_Homotopy_DeflatedGroup.C.

References grpPtr.

void LOCA::Homotopy::DeflatedGroup::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 968 of file LOCA_Homotopy_DeflatedGroup.C.

References LOCA::Extended::Vector::getScalar(), LOCA::MultiContinuation::ExtendedVector::getXVec(), and grpPtr.

int LOCA::Homotopy::DeflatedGroup::projectToDrawDimension (  )  const [virtual]

Returns the dimension of the project to draw array.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

Definition at line 980 of file LOCA_Homotopy_DeflatedGroup.C.

References grpPtr.

double LOCA::Homotopy::DeflatedGroup::computeScaledDotProduct ( const NOX::Abstract::Vector a,
const NOX::Abstract::Vector b 
) const [virtual]

void LOCA::Homotopy::DeflatedGroup::printSolution ( const double  conParam  )  const [virtual]

Function to print out solution and parameter after successful step.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

Definition at line 1003 of file LOCA_Homotopy_DeflatedGroup.C.

References globalData, grpPtr, and NOX::Utils::StepperDetails.

void LOCA::Homotopy::DeflatedGroup::printSolution ( const NOX::Abstract::Vector x,
const double  conParam 
) const [virtual]

Function to print out a vector and parameter after successful step.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

Definition at line 1016 of file LOCA_Homotopy_DeflatedGroup.C.

References globalData, grpPtr, and NOX::Utils::StepperDetails.

void LOCA::Homotopy::DeflatedGroup::scaleVector ( NOX::Abstract::Vector x  )  const [virtual]

Scales a vector using scaling vector.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

Definition at line 1030 of file LOCA_Homotopy_DeflatedGroup.C.

References LOCA::MultiContinuation::ExtendedVector::getXVec(), and grpPtr.

int LOCA::Homotopy::DeflatedGroup::getBorderedWidth (  )  const [virtual]

Return the total width of the bordered rows/columns.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1040 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, and isBordered.

Teuchos::RCP< const NOX::Abstract::Group > LOCA::Homotopy::DeflatedGroup::getUnborderedGroup (  )  const [virtual]

Get bottom-level unbordered group.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1051 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, grpPtr, and isBordered.

bool LOCA::Homotopy::DeflatedGroup::isCombinedAZero (  )  const [virtual]

Indicates whether combined A block is zero.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1061 of file LOCA_Homotopy_DeflatedGroup.C.

bool LOCA::Homotopy::DeflatedGroup::isCombinedBZero (  )  const [virtual]

Indicates whether combined B block is zero.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1068 of file LOCA_Homotopy_DeflatedGroup.C.

bool LOCA::Homotopy::DeflatedGroup::isCombinedCZero (  )  const [virtual]

Indicates whether combined C block is zero.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1075 of file LOCA_Homotopy_DeflatedGroup.C.

void LOCA::Homotopy::DeflatedGroup::extractSolutionComponent ( const NOX::Abstract::MultiVector v,
NOX::Abstract::MultiVector v_x 
) const [virtual]

Given the vector v, extract the underlying solution component corresponding to the unbordered group.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1082 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), and isBordered.

void LOCA::Homotopy::DeflatedGroup::extractParameterComponent ( bool  use_transpose,
const NOX::Abstract::MultiVector v,
NOX::Abstract::MultiVector::DenseMatrix v_p 
) const [virtual]

Given the vector v, extract the parameter components of all of the nested subvectors in v down to the solution component for the unbordered group.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1105 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, LOCA::Extended::MultiVector::getScalars(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), and isBordered.

void LOCA::Homotopy::DeflatedGroup::loadNestedComponents ( const NOX::Abstract::MultiVector v_x,
const NOX::Abstract::MultiVector::DenseMatrix v_p,
NOX::Abstract::MultiVector v 
) const [virtual]

Given the solution component v_x and combined parameter components v_p, distribute these components through the nested sub-vectors in v.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1163 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, LOCA::Extended::MultiVector::getScalars(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), and isBordered.

void LOCA::Homotopy::DeflatedGroup::fillA ( NOX::Abstract::MultiVector A  )  const [virtual]

Fill the combined A block as described above.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1201 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, isBordered, NOX::Abstract::MultiVector::subView(), and underlyingF.

void LOCA::Homotopy::DeflatedGroup::fillB ( NOX::Abstract::MultiVector B  )  const [virtual]

Fill the combined B block as described above.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1239 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, isBordered, NOX::Abstract::MultiVector::subView(), and totalDistMultiVec.

void LOCA::Homotopy::DeflatedGroup::fillC ( NOX::Abstract::MultiVector::DenseMatrix C  )  const [virtual]

Fill the combined C block as described above.

Implements LOCA::BorderedSystem::AbstractGroup.

Definition at line 1277 of file LOCA_Homotopy_DeflatedGroup.C.

References bordered_grp, isBordered, minusOne, totalDistMultiVec, and underlyingF.

void LOCA::Homotopy::DeflatedGroup::resetIsValid (  )  [protected, virtual]

Resets all isValid flags to false.

Definition at line 1325 of file LOCA_Homotopy_DeflatedGroup.C.

References isValidF, isValidGradient, isValidJacobian, and isValidNewton.

Referenced by computeX(), setHomotopyParam(), setParam(), setParams(), setParamsMulti(), and setX().

void LOCA::Homotopy::DeflatedGroup::setupViews (  )  [protected, virtual]

void LOCA::Homotopy::DeflatedGroup::setHomotopyParam ( double  param  )  [protected]

Set homotopy parameter.

Definition at line 1348 of file LOCA_Homotopy_DeflatedGroup.C.

References conParamID, paramVec, resetIsValid(), and xVec.

void LOCA::Homotopy::DeflatedGroup::setStepperParameters ( Teuchos::ParameterList &  topParams  )  [protected]

Creates and sets the "Stepper" parameter sublist.

Definition at line 1358 of file LOCA_Homotopy_DeflatedGroup.C.

References conParamLabel.

Referenced by DeflatedGroup().

DeflatedGroup& LOCA::Homotopy::DeflatedGroup::operator= ( const DeflatedGroup source  )  [private]

Prevent generation and use of operator=().


Member Data Documentation

Parsed top-level parameters.

Definition at line 452 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by copy(), and DeflatedGroup().

Teuchos::RCP<Teuchos::ParameterList> LOCA::Homotopy::DeflatedGroup::homotopyParams [protected]

Pitchfork parameter list.

Definition at line 455 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by copy(), and DeflatedGroup().

Stores the extended solution vector.

Definition at line 464 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by copy(), and setupViews().

Stores the extended residual vector.

Definition at line 467 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeNewton(), copy(), and setupViews().

Stores the extended Newton vector.

Definition at line 470 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeNewton(), copy(), and setupViews().

Stores the extended gradient vector.

Definition at line 473 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by copy(), and setupViews().

Stores view of first column of xMultiVec.

Definition at line 476 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeX(), DeflatedGroup(), getX(), setHomotopyParam(), setParams(), setupViews(), and setX().

Stores view of first column of fMultiVec.

Definition at line 479 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeF(), computeGradient(), getF(), getNormF(), getNormNewtonSolveResidual(), and setupViews().

Stores view of first column of newtonMultiVec.

Definition at line 482 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by getNewton(), getNormNewtonSolveResidual(), and setupViews().

Stores view of first column of gradientMultiVec.

Definition at line 485 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeGradient(), getGradient(), and setupViews().

Stores the starting vector, $ x^\ast $.

Definition at line 488 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeDfDpMulti(), computeF(), copy(), and DeflatedGroup().

std::vector< Teuchos::RCP<const NOX::Abstract::Vector> > LOCA::Homotopy::DeflatedGroup::solns [protected]

Stores array of deflated solution vectors.

Definition at line 494 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeF(), computeJacobian(), and copy().

Temporary vector for storing distance.

Definition at line 497 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeDfDpMulti(), computeF(), computeJacobian(), and copy().

Temporary vector for storing sum of distances.

Definition at line 500 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeJacobian(), copy(), DeflatedGroup(), fillB(), fillC(), and setupViews().

Temporary vector for storing sum of distances.

Definition at line 503 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeJacobian(), and setupViews().

underlying group's F vector as a multivector

Definition at line 506 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeJacobian(), copy(), DeflatedGroup(), fillA(), and fillC().

Stores bordered solver strategy.

Definition at line 512 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by applyJacobianInverseMultiVector(), computeJacobian(), copy(), and DeflatedGroup().

Stores -1.

Definition at line 515 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeJacobian(), copy(), DeflatedGroup(), and fillC().

std::vector<double> LOCA::Homotopy::DeflatedGroup::distances [protected]

Array of distances from previous solutions.

Definition at line 521 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeF(), computeJacobian(), and copy().

vector<int> LOCA::Homotopy::DeflatedGroup::index_f [protected]

Stores indices for getting f part of fMultiVec.

Definition at line 527 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by copy(), and setupViews().

Copy of the ParameterVector for the underlying grpPtr.

We copy this and then add the homotopy parameter to the list.

Definition at line 531 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by copy(), DeflatedGroup(), getParam(), getParams(), setHomotopyParam(), setParam(), and setParamsMulti().

Value of the homotopy continuation parameter.

Ranges from 0.0 (easy solution) to 1.0 (solution to the system of interest).

Definition at line 537 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeDfDpMulti(), computeF(), computeJacobian(), copy(), DeflatedGroup(), getHomotopyParam(), setParam(), and setParamsMulti().

Continuatioin parameter ID number from the ParameterVector.

Definition at line 540 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeDfDpMulti(), copy(), DeflatedGroup(), setHomotopyParam(), setParam(), setParams(), and setParamsMulti().

Contains the string used to identify the homotopy parameter in the ParameterVector object.

Definition at line 546 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by DeflatedGroup(), and setStepperParameters().

Tracks whether the LOCA::Homotopy::Group method augmentJacobianForHomotopy is implemented. If not, the augmentation is applied during the applyJacobian assuming a matrix-free implementation.

Definition at line 554 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by applyJacobianMultiVector(), applyJacobianTransposeMultiVector(), computeJacobian(), and copy().

Is residual vector valid.

Definition at line 557 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeF(), copy(), DeflatedGroup(), isF(), and resetIsValid().

Is Jacobian matrix valid.

Definition at line 560 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeJacobian(), copy(), DeflatedGroup(), isJacobian(), and resetIsValid().

Is Newton vector valid.

Definition at line 563 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeNewton(), copy(), DeflatedGroup(), isNewton(), and resetIsValid().

Is Gradient vector valid.

Definition at line 566 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by computeGradient(), copy(), DeflatedGroup(), isGradient(), and resetIsValid().

Flag that indicates whether underlying group is a bordered group.

Definition at line 569 of file LOCA_Homotopy_DeflatedGroup.H.

Referenced by DeflatedGroup(), extractParameterComponent(), extractSolutionComponent(), fillA(), fillB(), fillC(), getBorderedWidth(), getUnborderedGroup(), and loadNestedComponents().


The documentation for this class was generated from the following files:

Generated on Thu Dec 17 11:02:51 2009 for Nonlinear Solver Project by  doxygen 1.5.9