NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
LOCA::MultiContinuation::ConstrainedGroup Class Reference

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

#include <LOCA_MultiContinuation_ConstrainedGroup.H>

Inheritance diagram for LOCA::MultiContinuation::ConstrainedGroup:
Inheritance graph
[legend]
Collaboration diagram for LOCA::MultiContinuation::ConstrainedGroup:
Collaboration graph
[legend]

Public Member Functions

 ConstrainedGroup (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &constraintParams, const Teuchos::RCP< LOCA::MultiContinuation::AbstractGroup > &grp, const Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > &constraints, const std::vector< int > &paramIDs, bool skip_dfdp=false)
 Constructor. More...
 
 ConstrainedGroup (const ConstrainedGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~ConstrainedGroup ()
 Destructor.
 
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 const std::vector< int > & getConstraintParamIDs () const
 Get constraint parameter IDs.
 
virtual Teuchos::RCP
< LOCA::MultiContinuation::AbstractGroup
getGroup ()
 Get group.
 
virtual Teuchos::RCP
< LOCA::MultiContinuation::ConstraintInterface
getConstraints ()
 Get constraints.
 
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 Teuchos::RCP< const
NOX::Abstract::Vector
getXPtr () const
 Return RCP to extended solution vector.
 
virtual Teuchos::RCP< const
NOX::Abstract::Vector
getFPtr () const
 Return RCP to extended residual.
 
virtual Teuchos::RCP< const
NOX::Abstract::Vector
getGradientPtr () const
 Gradient is never valid.
 
virtual Teuchos::RCP< const
NOX::Abstract::Vector
getNewtonPtr () const
 Return RCP to 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 std::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 (std::string paramID, double val)
 Set parameter indexed by (std::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 (std::string paramID) const
 Return copy of parameter indexed by (std::string) paramID.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDfDpMulti (const std::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. More...
 
virtual void postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)
 Perform any postprocessing after a continuation step finishes. More...
 
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.
 
Implementation of LOCA::Abstract::TransposeSolveGroup

virtual methods

virtual
NOX::Abstract::Group::ReturnType 
applyJacobianTransposeInverse (Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Solve Jacobian-tranpose system.
 
virtual
NOX::Abstract::Group::ReturnType 
applyJacobianTransposeInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Solve Jacobian-tranpose system with multiple right-hand sides.
 
- Public Member Functions inherited from LOCA::Extended::MultiAbstractGroup
 MultiAbstractGroup ()
 Default constructor.
 
virtual ~MultiAbstractGroup ()
 Destructor.
 
virtual Teuchos::RCP
< NOX::Abstract::Group
getNestedGroup ()
 Override from NOX::Abstract::Group base class. Calls getUnderlyingGroup() from this class.
 
virtual Teuchos::RCP< const
NOX::Abstract::Group
getNestedGroup () const
 Override from NOX::Abstract::Group base class. Calls getUnderlyingGroup() from this class.
 
virtual Teuchos::RCP< const
LOCA::MultiContinuation::AbstractGroup
getBaseLevelUnderlyingGroup () const
 Return base-level underlying group. More...
 
virtual Teuchos::RCP
< LOCA::MultiContinuation::AbstractGroup
getBaseLevelUnderlyingGroup ()
 Return base-level underlying group. More...
 
- Public Member Functions inherited from NOX::Abstract::Group
 Group ()
 Constructor. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyRightPreconditioning (bool useTranspose, Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Apply right preconditiong to the given input vector. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyRightPreconditioningMultiVector (bool useTranspose, Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyRightPreconditioning for multiple right-hand sides More...
 
virtual const
NOX::Abstract::Vector
getScaledX () const
 
virtual void logLastLinearSolveStats (NOX::SolverStats &stats) const
 Adds statistics from last linear solve to the SovlerStats object.
 
virtual
NOX::Abstract::Group::ReturnType 
getNormLastLinearSolveResidual (double &residual) const
 Return the norm of the last linear solve residual as the result of either a call to computeNewton() or applyJacobianInverse(). More...
 
- Public Member Functions inherited from LOCA::Abstract::Group
 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data)
 Constructor.
 
 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::DerivUtils > &deriv)
 Constructor.
 
 Group (const Group &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~Group ()
 Destructor.
 
virtual
NOX::Abstract::Group::ReturnType 
augmentJacobianForHomotopy (double a, double b)
 Replace Jacobian $ J$ by $ aJ+bI$ where $ I$ is the identity matrix and $ p$ is a scalar. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeShiftedMatrix (double alpha, double beta)
 Compute the shifted matrix. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the shifted matrix by a vector. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrixMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Multiply the shifted matrix by a multi-vector. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrixInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Apply the inverse of the shifted matrix by a multi-vector, as needed by the shift-and-invert and generalized Cayley transformations. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeSecondShiftedMatrix (double alpha, double beta)
 Compute the second shifted matrix. Can avoid recomputing if two are stored. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applySecondShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the shifted matrix by a vector. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applySecondShiftedMatrixMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Multiply the shifted matrix by a multi-vector. More...
 
virtual bool isComplex () const
 Is $ J+i\omega B$ valid. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeComplex (double frequency)
 Compute $ J+i\omega B$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplex (const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 Compute $(J+i\omega B)(y+iz)$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexMultiVector (const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Compute $(J+i\omega B)(y+iz)$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Solve $(J+i\omega B)(y+iz) = a+ib$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTranspose (const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTransposeMultiVector (const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTransposeInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Solve $(J+i\omega B)^H (x + iy) = a+ib$.
 
virtual void notifyCompletedStep ()
 
virtual double computeFreeEnergy ()
 Computes the free energy at the current solution and parameter values.
 
- Public Member Functions inherited from LOCA::Homotopy::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::MultiContinuation::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector::DenseMatrix &result, bool isValid)
 Computes the derivative $\partial w^TJn/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w, NOX::Abstract::MultiVector &result, bool isValid)
 Computes the derivative $\partial w^TJ/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDx (const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::Vector &result)
 Computes the derivative $\frac{\partial w^TJn}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDpMulti (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result, bool isValid)
 Computes the derivative $\partial Jn/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxaMulti (const NOX::Abstract::Vector &nullVector, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result)
 Computes the directional derivative $\frac{\partial Jn}{\partial x} a$ for the given direction $ a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxaMulti (const NOX::Abstract::Vector &nullVector, const NOX::Abstract::Vector &JnVector, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result)
 Computes the directional derivative $\frac{\partial Jn}{\partial x} a$ for the given direction $ a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDxMulti (const NOX::Abstract::MultiVector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result)
 Computes the derivative $\frac{\partial w^TJn}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::MultiContinuation::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual void setDerivUtils (const Teuchos::RCP< LOCA::DerivUtils > &deriv)
 Set the LOCA::DerivUtils object.
 
- Public Member Functions inherited from LOCA::Pitchfork::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Pitchfork::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual double innerProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute the inner product of a and b. More...
 
virtual void innerProduct (const NOX::Abstract::MultiVector &a, const NOX::Abstract::MultiVector &b, NOX::Abstract::MultiVector::DenseMatrix &c) const
 Compute the inner product of a and b. More...
 
- Public Member Functions inherited from LOCA::Hopf::MinimallyAugmented::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &y, const NOX::Abstract::Vector &x, double omega, NOX::Abstract::MultiVector::DenseMatrix &result_real, NOX::Abstract::MultiVector::DenseMatrix &result_imag, bool isValid)
 Computes the derivative $\partial w^TCe/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDx (const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &y, const NOX::Abstract::Vector &z, double omega, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag)
 Computes the derivative $\frac{\partial w^TCe}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::Hopf::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Hopf::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TimeDependent::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::Hopf::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag, bool isValid)
 Computes the derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial p}$ where $ p$ is the parameter indexed by paramIDs. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag)
 Computes the directional derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial x} a$ for the given direction $ a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, const NOX::Abstract::Vector &Ce_real, const NOX::Abstract::Vector &Ce_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag)
 Computes the directional derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial x} a$ for the given direction $ a$. The arguments Ce_real and Ce_imag hold the real and imaginary components of $(J+i\omega B)(y+iz)$. More...
 
- Public Member Functions inherited from LOCA::PhaseTransition::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::BorderedSystem::AbstractGroup
 AbstractGroup ()
 Constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Abstract::TransposeSolveGroup
 TransposeSolveGroup ()
 Constructor.
 
virtual ~TransposeSolveGroup ()
 Destructor.
 

Protected Member Functions

virtual void resetIsValid ()
 Resets all isValid flags to false.
 
virtual void setupViews ()
 Sets up multivector views.
 

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
constraintParams
 Constraint parameter list.
 
Teuchos::RCP
< LOCA::MultiContinuation::AbstractGroup
grpPtr
 Pointer to base group that defines $F$.
 
Teuchos::RCP
< LOCA::BorderedSystem::AbstractGroup
bordered_grp
 Pointer to base group as a bordered group.
 
Teuchos::RCP
< LOCA::MultiContinuation::ConstraintInterface
constraintsPtr
 Pointer to constraint object.
 
int numParams
 Number of parameters.
 
LOCA::MultiContinuation::ExtendedMultiVector xMultiVec
 Stores the extended solution vector.
 
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::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::ExtendedMultiVector
ffMultiVec
 Stores view of first column of fMultiVec as a multivec.
 
Teuchos::RCP
< LOCA::MultiContinuation::ExtendedMultiVector
dfdpMultiVec
 Stores view of df/dp columns 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
< LOCA::BorderedSolver::JacobianOperator
jacOp
 
Teuchos::RCP
< LOCA::BorderedSolver::AbstractStrategy
borderedSolver
 Stores bordered solver strategy.
 
std::vector< int > index_f
 Stores indices for getting f part of fMultiVec.
 
std::vector< int > index_dfdp
 Stores indices for getting df/dp part of fMultiVec.
 
std::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.
 
bool isBordered
 Flag that indicates whether underlying group is a bordered group.
 
bool skipDfDp
 Flag indicating whether to skip df/dp computations.
 
- Protected Attributes inherited from LOCA::Abstract::Group
Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
 
- Protected Attributes inherited from LOCA::MultiContinuation::FiniteDifferenceGroup
Teuchos::RCP< DerivUtilsderivPtr
 Pointer to current DerivUtils derivative computation object.
 

Additional Inherited Members

- Public Types inherited from NOX::Abstract::Group
enum  ReturnType {
  Ok, NotDefined, BadDependency, NotConverged,
  Failed
}
 The computation of, say, the Newton direction in computeNewton() may fail in many different ways, so we have included a variety of return codes to describe the failures. Of course, we also have a code for success. More...
 

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::BorderedSolver::AbstractStrategy which is specified via the constraintParams argument to the constructor.

Constructor & Destructor Documentation

LOCA::MultiContinuation::ConstrainedGroup::ConstrainedGroup ( const Teuchos::RCP< LOCA::GlobalData > &  global_data,
const Teuchos::RCP< LOCA::Parameter::SublistParser > &  topParams,
const Teuchos::RCP< Teuchos::ParameterList > &  constraintParams,
const Teuchos::RCP< LOCA::MultiContinuation::AbstractGroup > &  grp,
const Teuchos::RCP< LOCA::MultiContinuation::ConstraintInterface > &  constraints,
const std::vector< int > &  paramIDs,
bool  skip_dfdp = false 
)

Constructor.

Parameters
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
skip_dfdp[in] Whether to skip computation of df/dp when computing extended Jacobian.

References bordered_grp, borderedSolver, constraintParamIDs, constraintParams, constraintsPtr, LOCA::MultiContinuation::AbstractGroup::getParam(), LOCA::Extended::Vector::getScalar(), LOCA::Extended::Vector::getScalars(), LOCA::MultiContinuation::ExtendedVector::getXVec(), globalData, grpPtr, isBordered, LOCA::GlobalData::locaFactory, numParams, parsedParams, Teuchos::rcp(), LOCA::MultiContinuation::ConstraintInterface::setParams(), setupViews(), LOCA::MultiContinuation::ConstraintInterface::setX(), and xVec.

Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::MultiContinuation::ConstrainedGroup::computeDfDpMulti ( const std::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.

References LOCA::Extended::MultiVector::getScalars(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), and NOX::Abstract::Group::Ok.

void LOCA::MultiContinuation::ConstrainedGroup::extractParameterComponent ( bool  use_transpose,
const NOX::Abstract::MultiVector v,
NOX::Abstract::MultiVector::DenseMatrix v_p 
) const
virtual
void LOCA::MultiContinuation::ConstrainedGroup::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.

References LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec().

void LOCA::MultiContinuation::ConstrainedGroup::loadNestedComponents ( const NOX::Abstract::MultiVector v_x,
const NOX::Abstract::MultiVector::DenseMatrix v_p,
NOX::Abstract::MultiVector v 
) const
virtual
void LOCA::MultiContinuation::ConstrainedGroup::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.

void LOCA::MultiContinuation::ConstrainedGroup::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.


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