|
NOX
Development
|
An interface for groups that are bordered systems. More...
#include <LOCA_BorderedSystem_AbstractGroup.H>


Public Member Functions | |
| AbstractGroup () | |
| Constructor. | |
| virtual | ~AbstractGroup () |
| Destructor. | |
Pure virtual methods | |
These methods must be defined by any concrete implementation | |
| virtual int | getBorderedWidth () const =0 |
| Return the total width of the bordered rows/columns. | |
|
virtual Teuchos::RCP< const NOX::Abstract::Group > | getUnborderedGroup () const =0 |
| Get bottom-level unbordered group. | |
| virtual bool | isCombinedAZero () const =0 |
| Indicates whether combined A block is zero. | |
| virtual bool | isCombinedBZero () const =0 |
| Indicates whether combined B block is zero. | |
| virtual bool | isCombinedCZero () const =0 |
| Indicates whether combined C block is zero. | |
| virtual void | extractSolutionComponent (const NOX::Abstract::MultiVector &v, NOX::Abstract::MultiVector &v_x) const =0 |
| virtual void | extractParameterComponent (bool use_transpose, const NOX::Abstract::MultiVector &v, NOX::Abstract::MultiVector::DenseMatrix &v_p) const =0 |
| virtual void | loadNestedComponents (const NOX::Abstract::MultiVector &v_x, const NOX::Abstract::MultiVector::DenseMatrix &v_p, NOX::Abstract::MultiVector &v) const =0 |
| virtual void | fillA (NOX::Abstract::MultiVector &A) const =0 |
| Fill the combined A block as described above. | |
| virtual void | fillB (NOX::Abstract::MultiVector &B) const =0 |
| Fill the combined B block as described above. | |
| virtual void | fillC (NOX::Abstract::MultiVector::DenseMatrix &C) const =0 |
| Fill the combined C block as described above. | |
Public Member Functions inherited from NOX::Abstract::Group | |
| Group () | |
| Constructor. More... | |
| virtual | ~Group () |
| Destructor. | |
| virtual NOX::Abstract::Group & | operator= (const NOX::Abstract::Group &source)=0 |
| Copies the source group into this group. More... | |
| virtual void | setX (const NOX::Abstract::Vector &y)=0 |
| Set the solution vector x to y. More... | |
| virtual void | computeX (const NOX::Abstract::Group &grp, const NOX::Abstract::Vector &d, double step)=0 |
| Compute x = grp.x + step * d. More... | |
| virtual NOX::Abstract::Group::ReturnType | computeF ()=0 |
| Compute and store F(x). More... | |
| virtual NOX::Abstract::Group::ReturnType | computeJacobian () |
| Compute and store Jacobian. More... | |
| virtual NOX::Abstract::Group::ReturnType | computeGradient () |
| Compute and store gradient. More... | |
| virtual NOX::Abstract::Group::ReturnType | computeNewton (Teuchos::ParameterList ¶ms) |
| Compute the Newton direction, using parameters for the linear solve. More... | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobian (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Applies Jacobian to the given input vector and puts the answer in the result. More... | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianTranspose (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Applies Jacobian-Transpose to the given input vector and puts the answer in the result. More... | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianInverse (Teuchos::ParameterList ¶ms, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const |
| Applies the inverse of the Jacobian matrix to the given input vector and puts the answer in result. 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 | applyJacobianMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const |
| applyJacobian for multiple right-hand sides More... | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianTransposeMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const |
| applyJacobianTranspose for multiple right-hand sides More... | |
| virtual NOX::Abstract::Group::ReturnType | applyJacobianInverseMultiVector (Teuchos::ParameterList ¶ms, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const |
| applyJacobianInverse for multiple right-hand sides 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 bool | isF () const =0 |
| Return true if F is valid. | |
| virtual bool | isJacobian () const |
| Return true if the Jacobian is valid. More... | |
| virtual bool | isGradient () const |
| Return true if the gradient is valid. More... | |
| virtual bool | isNewton () const |
| Return true if the Newton direction is valid. More... | |
|
virtual const NOX::Abstract::Vector & | getX () const =0 |
| Return solution vector. | |
| virtual const NOX::Abstract::Vector & | getScaledX () const |
|
virtual const NOX::Abstract::Vector & | getF () const =0 |
| Return F(x) | |
| virtual double | getNormF () const =0 |
| Return 2-norm of F(x). More... | |
|
virtual const NOX::Abstract::Vector & | getGradient () const =0 |
| Return gradient. | |
|
virtual const NOX::Abstract::Vector & | getNewton () const =0 |
| Return Newton direction. | |
|
virtual Teuchos::RCP< const NOX::Abstract::Vector > | getXPtr () const =0 |
| Return RCP to solution vector. | |
|
virtual Teuchos::RCP< const NOX::Abstract::Vector > | getFPtr () const =0 |
| Return RCP to F(x) | |
|
virtual Teuchos::RCP< const NOX::Abstract::Vector > | getGradientPtr () const =0 |
| Return RCP to gradient. | |
|
virtual Teuchos::RCP< const NOX::Abstract::Vector > | getNewtonPtr () const =0 |
| Return RCP to Newton direction. | |
| 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... | |
| virtual Teuchos::RCP < NOX::Abstract::Group > | clone (NOX::CopyType type=NOX::DeepCopy) const =0 |
| Create a new Group of the same derived type as this one by cloning this one, and return a ref count pointer to the new group. More... | |
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... | |
An interface for groups that are bordered systems.
This class provides an interface for groups whose Jacobian is of the form
where
and
are multivectors and
is a dense matrix. It provides methods for determining the width of the bordered rows/columns and for extracting these components. It is intended to be a recusive interface, in that if the group representing
also has this form, the extracted rows/columns should be the combined rows/columns of this group and the underlying group (and so on).
|
pure 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.
Implemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, and LOCA::MultiContinuation::ExtendedGroup.
|
pure virtual |
Given the vector v, extract the underlying solution component corresponding to the unbordered group.
Implemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, and LOCA::MultiContinuation::ExtendedGroup.
|
pure virtual |
Given the solution component v_x and combined parameter components v_p, distribute these components through the nested sub-vectors in v.
Implemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, and LOCA::MultiContinuation::ExtendedGroup.
1.8.5