LOCA::MultiContinuation::ConstrainedGroup Class Reference

Extended group representing a constrained nonlinear problem. More...

#include <LOCA_MultiContinuation_ConstrainedGroup.H>

Inheritance diagram for LOCA::MultiContinuation::ConstrainedGroup:

Collaboration diagram for LOCA::MultiContinuation::ConstrainedGroup:
List of all members.

Public Member Functions

 ConstrainedGroup (const Teuchos::RefCountPtr< LOCA::GlobalData > &global_data, const Teuchos::RefCountPtr< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RefCountPtr< NOX::Parameter::List > &constraintParams, const Teuchos::RefCountPtr< LOCA::MultiContinuation::AbstractGroup > &grp, const Teuchos::RefCountPtr< LOCA::MultiContinuation::ConstraintInterface > &constraints, const vector< int > &paramIDs)
 ConstrainedGroup (const ConstrainedGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
virtual ~ConstrainedGroup ()
virtual ConstrainedGroupoperator= (const ConstrainedGroup &source)
 Assignment operator.
virtual void setConstraintParameter (int i, double val)
 Set constraint parameter i to value val.
virtual double getConstraintParameter (int i) const
 Get constraint parameter i.
virtual Teuchos::RefCountPtr<
getGroup () const
 Get group.
virtual Teuchos::RefCountPtr<
getConstraints () const
 Get constraints.
virtual const vector< int > & getConstraintParamIDs () const
 Get constraint parameter IDs.
Implementation of NOX::Abstract::Group virtual methods
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
virtual NOX::Abstract::Groupclone (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 (NOX::Parameter::List &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 (NOX::Parameter::List &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 (NOX::Parameter::List &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::VectorgetX () const
 Return extended solution vector.
virtual const NOX::Abstract::VectorgetF () const
 Return extended residual.
virtual double getNormF () const
 Return 2-norm of extended residual.
virtual const NOX::Abstract::VectorgetGradient () const
 Gradient is never valid.
virtual const NOX::Abstract::VectorgetNewton () 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 LOCA::Extended::MultiAbstractGroupoperator= (const LOCA::Extended::MultiAbstractGroup &source)
 Assignment operator.
virtual Teuchos::RefCountPtr<
const LOCA::MultiContinuation::AbstractGroup
getUnderlyingGroup () const
 Return underlying group.
virtual Teuchos::RefCountPtr<
getUnderlyingGroup ()
 Return underlying group.
Implementation of LOCA::MultiContinuation::AbstractGroup
virtual methods

virtual LOCA::MultiContinuation::AbstractGroupoperator= (const LOCA::MultiContinuation::AbstractGroup &source)
 Assignment operator.
virtual void setParamsMulti (const vector< int > &paramIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals)
 Set parameters indexed by (integer) paramIDs.
virtual NOX::Abstract::Group::ReturnType computeDfDpMulti (const vector< int > &paramIDs, NOX::Abstract::MultiVector &dfdp, bool isValidF)
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.
Implementation of LOCA::Continuation::AbstractGroup
virtual methods

virtual LOCA::Continuation::AbstractGroupoperator= (const LOCA::Continuation::AbstractGroup &source)
 Assignment operator.
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 computeDfDp (int paramID, NOX::Abstract::Vector &result)
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.

Protected Member Functions

virtual NOX::Abstract::Group::ReturnType applyJacobianInverseNewton (NOX::Parameter::List &params)
 applyJacobianInverseMultiVector specialized to Newton solves
virtual void resetIsValid ()
 Resets all isValid flags to false.
virtual void setupViews ()
 Sets up multivector views.

Protected Attributes

Teuchos::RefCountPtr< LOCA::GlobalDataglobalData
 Pointer LOCA global data object.
Teuchos::RefCountPtr< LOCA::Parameter::SublistParserparsedParams
 Parsed top-level parameters.
Teuchos::RefCountPtr< NOX::Parameter::ListconstraintParams
 Constraint parameter list.
Teuchos::RefCountPtr< LOCA::MultiContinuation::AbstractGroupgrpPtr
 Pointer to base group that defines $F$.
Teuchos::RefCountPtr< LOCA::MultiContinuation::ConstraintInterfaceconstraintsPtr
 Pointer to constraint object.
int numParams
 Number of parameters.
LOCA::MultiContinuation::ExtendedMultiVector xMultiVec
 Stores the extended solution vector and J^-1 df/dp.
LOCA::MultiContinuation::ExtendedMultiVector fMultiVec
 Stores the extended residual vector and df/dp.
LOCA::MultiContinuation::ExtendedMultiVector newtonMultiVec
 Stores the extended Newton vector.
LOCA::MultiContinuation::ExtendedMultiVector gradientMultiVec
 Stores the extended gradient vector.
Teuchos::RefCountPtr< LOCA::MultiContinuation::ExtendedVectorxVec
 Stores view of first column of xMultiVec.
Teuchos::RefCountPtr< LOCA::MultiContinuation::ExtendedVectorfVec
 Stores view of first column of fMultiVec.
Teuchos::RefCountPtr< LOCA::MultiContinuation::ExtendedMultiVectorffMultiVec
 Stores view of first column of fMultiVec as a multivec.
Teuchos::RefCountPtr< LOCA::MultiContinuation::ExtendedMultiVectordfdpMultiVec
 Stores view of df/dp columns of fMultiVec.
Teuchos::RefCountPtr< LOCA::MultiContinuation::ExtendedVectornewtonVec
 Stores view of first column of newtonMultiVec.
Teuchos::RefCountPtr< LOCA::MultiContinuation::ExtendedVectorgradientVec
 Stores view of first column of gradientMultiVec.
Teuchos::RefCountPtr< LOCA::BorderedSystem::AbstractStrategyborderedSolver
 Stores bordered solver 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 > constraintParamIDs
 integer id of constraint parameters
bool isValidF
 Is residual vector valid.
bool isValidJacobian
 Is Jacobian matrix valid.
bool isValidNewton
 Is Newton vector valid.
bool isValidGradient
 Is Gradient vector valid.

Detailed Description

Extended group representing a constrained nonlinear problem.

This class represents a constrained system of nonlinear equations:

\[ \begin{split} f(x,p) &= 0 \\ g(x,p) &= 0 \end{split} \]

where $x\in\Re^n$ is the solution vector, $p\in\Re^m$ is a set of constraint parameters, $f(x,p)\in\Re^n$ is represented by some LOCA::MultiContinuation::AbstractGroup, and $g(x,p)\in\Re^m$ is a constraint represented by a LOCA::MultiContinuation::ConstraintInterface object. Newton steps for this system are computed via some LOCA::BorderedSystem::AbstractStrategy which is specified via the constraintParams argument to the constructor.

Constructor & Destructor Documentation

LOCA::MultiContinuation::ConstrainedGroup::ConstrainedGroup const Teuchos::RefCountPtr< LOCA::GlobalData > &  global_data,
const Teuchos::RefCountPtr< LOCA::Parameter::SublistParser > &  topParams,
const Teuchos::RefCountPtr< NOX::Parameter::List > &  constraintParams,
const Teuchos::RefCountPtr< LOCA::MultiContinuation::AbstractGroup > &  grp,
const Teuchos::RefCountPtr< LOCA::MultiContinuation::ConstraintInterface > &  constraints,
const vector< int > &  paramIDs


global_data [in] Global data object
topParams [in] Parsed top-level parameter list.
constraintParams [in] Parameter list determining the bordered solver method.
grp [in] Group representing $f$.
constraints [in] Constraint object representing $g$.
paramIDs [in] Parameter IDs of the constraint parameters.

Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstrainedGroup::computeDfDp int  paramID,
NOX::Abstract::Vector result

Compute $\partial F/\partial p$ where $p$ is the parameter indexed by paramID.

Implements LOCA::Continuation::AbstractGroup.

NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstrainedGroup::computeDfDpMulti const vector< int > &  paramIDs,
NOX::Abstract::MultiVector dfdp,
bool  isValidF

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.

The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:40:46 2008 for NOX by doxygen