NOX
Development
|
Extended group representing a constrained nonlinear problem. More...
#include <LOCA_MultiContinuation_ConstrainedGroup.H>
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 > ¶mIDs, 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::Group & | operator= (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 ¶ms) |
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 ¶ms, 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 ¶ms, 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 > ¶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 (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 ParameterVector & | getParams () 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 > ¶mIDs, 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 | |
LOCA::BorderedSystem::AbstractGroup virtual methods | |
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 ¶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. | |
Public Member Functions inherited from LOCA::Extended::MultiAbstractGroup | |
MultiAbstractGroup () | |
Default constructor. | |
virtual | ~MultiAbstractGroup () |
Destructor. | |
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 ¶ms, 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 ¶ms, 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 by where is the identity matrix and 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 ¶ms, 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 valid. More... | |
virtual NOX::Abstract::Group::ReturnType | computeComplex (double frequency) |
Compute . 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 . 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 . More... | |
virtual NOX::Abstract::Group::ReturnType | applyComplexInverseMultiVector (Teuchos::ParameterList ¶ms, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const |
Solve . 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 ¶ms, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const |
Solve . | |
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 > ¶mIDs, const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector::DenseMatrix &result, bool isValid) |
Computes the derivative . More... | |
virtual NOX::Abstract::Group::ReturnType | computeDwtJDp (const std::vector< int > ¶mIDs, const NOX::Abstract::Vector &w, NOX::Abstract::MultiVector &result, bool isValid) |
Computes the derivative . More... | |
virtual NOX::Abstract::Group::ReturnType | computeDwtJnDx (const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::Vector &result) |
Computes the derivative . 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 > ¶mIDs, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result, bool isValid) |
Computes the derivative . 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 for the given direction . 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 for the given direction . More... | |
virtual NOX::Abstract::Group::ReturnType | computeDwtJnDxMulti (const NOX::Abstract::MultiVector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result) |
Computes the derivative . 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 > ¶mIDs, 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 . 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 . 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 > ¶mIDs, 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 where 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 for the given direction . 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 for the given direction . The arguments Ce_real and Ce_imag hold the real and imaginary components of . 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::GlobalData > | globalData |
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 . | |
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::GlobalData > | globalData |
Global data. | |
Protected Attributes inherited from LOCA::MultiContinuation::FiniteDifferenceGroup | |
Teuchos::RCP< DerivUtils > | derivPtr |
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... | |
Extended group representing a constrained nonlinear problem.
This class represents a constrained system of nonlinear equations:
where is the solution vector, is a set of constraint parameters, is represented by some LOCA::MultiContinuation::AbstractGroup, and 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.
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.
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 . |
constraints | [in] Constraint object representing . |
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.
|
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.
References LOCA::Extended::MultiVector::getScalars(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), and NOX::Abstract::Group::Ok.
|
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.
References Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), LOCA::Extended::MultiVector::getScalars(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::numCols(), Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::numRows(), and Teuchos::View.
|
virtual |
Given the vector v
, extract the underlying solution component corresponding to the unbordered group.
Implements LOCA::BorderedSystem::AbstractGroup.
References LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec().
|
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.
References Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), LOCA::Extended::MultiVector::getScalars(), LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec(), Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::numCols(), and Teuchos::View.
|
virtual |
Perform any postprocessing after a continuation step finishes.
The stepStatus
argument indicates whether the step was successful.
Reimplemented from LOCA::MultiContinuation::AbstractGroup.
|
virtual |
Perform any preprocessing before a continuation step starts.
The stepStatus
argument indicates whether the previous step was successful.
Reimplemented from LOCA::MultiContinuation::AbstractGroup.