NOX
Development
|
Abstract interface class for continuation strategies. More...
#include <LOCA_MultiContinuation_AbstractStrategy.H>
Public Member Functions | |
AbstractStrategy () | |
Constructor. | |
virtual | ~AbstractStrategy () |
Destructor. | |
virtual void | copy (const NOX::Abstract::Group &source)=0 |
Copy. | |
virtual int | getNumParams () const =0 |
Returns number of parameters. | |
virtual void | preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)=0 |
Perform any preprocessing before a continuation step starts. More... | |
virtual void | postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)=0 |
Perform any postprocessing after a continuation step finishes. More... | |
virtual NOX::Abstract::Group::ReturnType | computePredictor ()=0 |
Compute predictor directions. | |
virtual bool | isPredictor () const =0 |
Is Predictor valid. | |
virtual void | scaleTangent ()=0 |
Scales tangent to predictor. | |
virtual void | setPredictorTangentDirection (const LOCA::MultiContinuation::ExtendedVector &v, int i)=0 |
Sets tangent to predictor. More... | |
virtual const LOCA::MultiContinuation::ExtendedMultiVector & | getPredictorTangent () const =0 |
Returns tangent to predictor. | |
virtual const LOCA::MultiContinuation::ExtendedMultiVector & | getScaledPredictorTangent () const =0 |
Returns scaled tangent to predictor. | |
virtual void | setPrevX (const NOX::Abstract::Vector &y)=0 |
Set the previous solution vector y. | |
virtual const LOCA::MultiContinuation::ExtendedVector & | getPrevX () const =0 |
Gets the previous solution vector. | |
virtual void | setStepSize (double deltaS, int i=0)=0 |
Set step size for continuation constraint equation i. | |
virtual double | getStepSize (int i=0) const =0 |
Get step size for continuation constraint equation i. | |
virtual void | setContinuationParameter (double val, int i=0)=0 |
Sets the value for continuation parameter i. | |
virtual double | getContinuationParameter (int i=0) const =0 |
Returns the value for continuation parameter i. | |
virtual int | getContinuationParameterID (int i=0) const =0 |
Get the continuation parameter id for parameter i. | |
virtual const std::vector< int > & | getContinuationParameterIDs () const =0 |
Get the continuation parameter ids. | |
virtual std::string | getContinuationParameterName (int i=0) const =0 |
Get the continuation parameter id for parameter i. | |
virtual double | getStepSizeScaleFactor (int i=0) const =0 |
Returns step size scale factor for constraint equation i. | |
virtual void | printSolution () const =0 |
Prints the group. | |
virtual double | computeScaledDotProduct (const NOX::Abstract::Vector &x, const NOX::Abstract::Vector &y) const =0 |
Computes a scaled dot product between two continuation vectors. | |
virtual int | projectToDrawDimension () const =0 |
Returns dimension of project to draw array. | |
virtual void | projectToDraw (const LOCA::MultiContinuation::ExtendedVector &x, double *px) const =0 |
Fills the project to draw array. | |
Public Member Functions inherited from LOCA::Extended::MultiAbstractGroup | |
MultiAbstractGroup () | |
Default constructor. | |
virtual | ~MultiAbstractGroup () |
Destructor. | |
virtual Teuchos::RCP< const LOCA::MultiContinuation::AbstractGroup > | getUnderlyingGroup () const =0 |
Return underlying group. More... | |
virtual Teuchos::RCP < LOCA::MultiContinuation::AbstractGroup > | getUnderlyingGroup ()=0 |
Return underlying group. More... | |
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 | ~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... | |
Abstract interface class for continuation strategies.
AbstractStrategy defines an abstract interface for continuation strategies. This interface is used by the LOCA::Stepper to manipulate continuation groups in a consistent manner. It defines a number pure virtual methods that all continuation groups must implement.
|
pure virtual |
Perform any postprocessing after a continuation step finishes.
The stepStatus
argument indicates whether the step was successful.
Implemented in LOCA::MultiContinuation::ExtendedGroup.
|
pure virtual |
Perform any preprocessing before a continuation step starts.
The stepStatus
argument indicates whether the previous step was successful.
Implemented in LOCA::MultiContinuation::ExtendedGroup.
|
pure virtual |
Sets tangent to predictor.
This is required by MF which takes the tangent space, orthogonalizes it, and then sets it back in the group.
Implemented in LOCA::MultiContinuation::ExtendedGroup.