NOX
Development
|
LOCA abstract interface for continuation, derived from the NOX::Abstract::Group. This abstract class provides the interface necessary to perform continuation, i.e., compute families of solutions to . More...
#include <LOCA_MultiContinuation_AbstractGroup.H>
Public Member Functions | |
AbstractGroup () | |
Default constructor. | |
virtual | ~AbstractGroup () |
Destructor. | |
Pure virtual methods | |
These methods must be defined by any concrete implementation | |
virtual void | copy (const NOX::Abstract::Group &source)=0 |
Copy the group (replaces operator = ) | |
virtual void | setParamsMulti (const std::vector< int > ¶mIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals)=0 |
Set parameters indexed by (integer) paramIDs. | |
virtual void | setParams (const LOCA::ParameterVector &p)=0 |
Set the parameter vector in the group to p (pVector = p). | |
virtual void | setParam (int paramID, double val)=0 |
Set parameter indexed by (integer) paramID. | |
virtual void | setParam (std::string paramID, double val)=0 |
Set parameter indexed by (std::string) paramID. | |
virtual const LOCA::ParameterVector & | getParams () const =0 |
Return a const reference to the ParameterVector owned by the group. | |
virtual double | getParam (int paramID) const =0 |
Return copy of parameter indexed by (integer) paramID. | |
virtual double | getParam (std::string paramID) const =0 |
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)=0 |
Virtual methods with default implementations | |
These methods should be overloaded in a concrete implementation if more appropriate/efficient approaches are available. | |
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. More... | |
virtual int | projectToDrawDimension () const |
Returns the dimension of the project to draw array. More... | |
virtual double | computeScaledDotProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const |
Compute a scaled dot product. More... | |
Virtual methods with empty or trivial implementations | |
These methods should be overloaded in a concrete implementation but their implementation is not critical to the rest of LOCA and therefore have empty or trivial implementations. | |
virtual void | printSolution (const double) const |
Function to print out solution and parameter after successful step. More... | |
virtual void | printSolution (const NOX::Abstract::Vector &, const double) const |
Function to print out a vector and parameter after successful step. More... | |
virtual void | scaleVector (NOX::Abstract::Vector &x) const |
Scales a vector using scaling vector. 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 Teuchos::RCP < NOX::Abstract::Group > | getNestedGroup () |
Return an internally stored group from this group. More... | |
virtual Teuchos::RCP< const NOX::Abstract::Group > | getNestedGroup () const |
Return an internally stored group from 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... | |
LOCA abstract interface for continuation, derived from the NOX::Abstract::Group. This abstract class provides the interface necessary to perform continuation, i.e., compute families of solutions to .
Concrete implemenations of this interface must provide implementations of all of the methods in the NOX::Abstract::Group interface as well as the additional interface defined here.
|
pure 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.
Implemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::PhaseTransition::ExtendedGroup, LOCA::Thyra::Group, and LOCA::MultiContinuation::FiniteDifferenceGroup.
Referenced by LOCA::MultiPredictor::Tangent::compute(), and LOCA::Thyra::Group::computeDfDpMulti().
|
virtual |
Compute a scaled dot product.
The default implementation here just computes a.dot(b) but should be overloaded for any problem that his difficult scaling.
Reimplemented in LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Epetra::Group, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::LAPACK::Group, and LOCA::Thyra::Group.
References NOX::Abstract::Vector::innerProduct().
|
virtual |
Perform any postprocessing after a continuation step finishes.
The stepStatus
argument indicates whether the step was successful. The default implementation to empty.
Reimplemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::Epetra::Group, and LOCA::Thyra::Group.
|
virtual |
Perform any preprocessing before a continuation step starts.
The stepStatus
argument indicates whether the previous step was successful. The default implementation to empty.
Reimplemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::Epetra::Group, and LOCA::Thyra::Group.
|
inlinevirtual |
Function to print out solution and parameter after successful step.
Empty default definition.
Reimplemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Epetra::Group, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::LAPACK::Group, LOCA::PhaseTransition::ExtendedGroup, and LOCA::Thyra::Group.
|
inlinevirtual |
Function to print out a vector and parameter after successful step.
Empty default definition.
Reimplemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Epetra::Group, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::LAPACK::Group, LOCA::PhaseTransition::ExtendedGroup, and LOCA::Thyra::Group.
|
virtual |
Projects solution to a few scalars for multiparameter continuation.
This method is called every time a solution is saved by the multiparameter continuation code MF for later visualization and should project the solution vector down to a few scalars. The array px
will be preallocated to the proper length given by projectToDrawDimension().
The default implementation is the max norm of the vector.
Reimplemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Homotopy::DeflatedGroup, LOCA::Epetra::Group, LOCA::MultiContinuation::ConstrainedGroup, LOCA::LAPACK::Group, and LOCA::Thyra::Group.
References NOX::Abstract::Vector::MaxNorm, and NOX::Abstract::Vector::norm().
|
virtual |
Returns the dimension of the project to draw array.
The default implementation is to return 1 since the default projection is the max norm of the vector (a scalar).
Reimplemented in LOCA::TurningPoint::MinimallyAugmented::ExtendedGroup, LOCA::TurningPoint::MooreSpence::ExtendedGroup, LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MooreSpence::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Hopf::MooreSpence::ExtendedGroup, LOCA::Homotopy::Group, LOCA::Homotopy::DeflatedGroup, LOCA::Epetra::Group, LOCA::MultiContinuation::ConstrainedGroup, LOCA::LAPACK::Group, and LOCA::Thyra::Group.
|
virtual |
Scales a vector using scaling vector.
The default definition here is to do nothing, i.e., no scaling
Reimplemented in LOCA::Hopf::MinimallyAugmented::ExtendedGroup, LOCA::Pitchfork::MinimallyAugmented::ExtendedGroup, LOCA::Epetra::Group, LOCA::Homotopy::DeflatedGroup, LOCA::MultiContinuation::ConstrainedGroup, LOCA::LAPACK::Group, and LOCA::Thyra::Group.