| ROL
    | 
Provides the interface to compute optimization steps with projected inexact ProjectedNewton's method using line search. More...
#include <ROL_ProjectedNewtonKrylovStep.hpp>
 Inheritance diagram for ROL::ProjectedNewtonKrylovStep< Real >:
 Inheritance diagram for ROL::ProjectedNewtonKrylovStep< Real >:| Classes | |
| class | HessianPNK | 
| class | PrecondPNK | 
| Public Member Functions | |
| ProjectedNewtonKrylovStep (ROL::ParameterList &parlist, const bool computeObj=true) | |
| Constructor.  More... | |
| ProjectedNewtonKrylovStep (ROL::ParameterList &parlist, const ROL::Ptr< Krylov< Real > > &krylov, const ROL::Ptr< Secant< Real > > &secant, const bool computeObj=true) | |
| Constructor.  More... | |
| void | initialize (Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) | 
| Initialize step with bound constraint.  More... | |
| void | compute (Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) | 
| Compute step.  More... | |
| void | update (Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) | 
| Update step, if successful.  More... | |
| std::string | printHeader (void) const | 
| Print iterate header.  More... | |
| std::string | printName (void) const | 
| Print step name.  More... | |
| std::string | print (AlgorithmState< Real > &algo_state, bool print_header=false) const | 
| Print iterate status.  More... | |
|  Public Member Functions inherited from ROL::Step< Real > | |
| virtual | ~Step () | 
| Step (void) | |
| virtual void | initialize (Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state) | 
| Initialize step with bound constraint.  More... | |
| virtual void | initialize (Vector< Real > &x, const Vector< Real > &g, Vector< Real > &l, const Vector< Real > &c, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state) | 
| Initialize step with equality constraint.  More... | |
| virtual void | initialize (Vector< Real > &x, const Vector< Real > &g, Vector< Real > &l, const Vector< Real > &c, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) | 
| Initialize step with equality constraint.  More... | |
| virtual void | compute (Vector< Real > &s, const Vector< Real > &x, const Vector< Real > &l, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state) | 
| Compute step (equality constraints).  More... | |
| virtual void | update (Vector< Real > &x, Vector< Real > &l, const Vector< Real > &s, Objective< Real > &obj, Constraint< Real > &con, AlgorithmState< Real > &algo_state) | 
| Update step, if successful (equality constraints).  More... | |
| virtual void | compute (Vector< Real > &s, const Vector< Real > &x, const Vector< Real > &l, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) | 
| Compute step (equality constraints).  More... | |
| virtual void | update (Vector< Real > &x, Vector< Real > &l, const Vector< Real > &s, Objective< Real > &obj, Constraint< Real > &con, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state) | 
| Update step, if successful (equality constraints).  More... | |
| const ROL::Ptr< const StepState< Real > > | getStepState (void) const | 
| Get state for step object.  More... | |
| void | reset (const Real searchSize=1.0) | 
| Get state for step object.  More... | |
| Private Attributes | |
| ROL::Ptr< Secant< Real > > | secant_ | 
| Secant object (used for quasi-Newton)  More... | |
| ROL::Ptr< Krylov< Real > > | krylov_ | 
| Krylov solver object (used for inexact Newton)  More... | |
| EKrylov | ekv_ | 
| ESecant | esec_ | 
| ROL::Ptr< Vector< Real > > | gp_ | 
| ROL::Ptr< Vector< Real > > | d_ | 
| int | iterKrylov_ | 
| Number of Krylov iterations (used for inexact Newton)  More... | |
| int | flagKrylov_ | 
| Termination flag for Krylov method (used for inexact Newton)  More... | |
| int | verbosity_ | 
| Verbosity level.  More... | |
| const bool | computeObj_ | 
| bool | useSecantPrecond_ | 
| Whether or not a secant approximation is used for preconditioning inexact Newton.  More... | |
| bool | useProjectedGrad_ | 
| Whether or not to use to the projected gradient criticality measure.  More... | |
| std::string | krylovName_ | 
| std::string | secantName_ | 
| Additional Inherited Members | |
|  Protected Member Functions inherited from ROL::Step< Real > | |
| ROL::Ptr< StepState< Real > > | getState (void) | 
Provides the interface to compute optimization steps with projected inexact ProjectedNewton's method using line search.
Definition at line 33 of file ROL_ProjectedNewtonKrylovStep.hpp.
| 
 | inline | 
Constructor.
Standard constructor to build a ProjectedNewtonKrylovStep object. Algorithmic specifications are passed in through a ROL::ParameterList.
| [in] | parlist | is a parameter list containing algorithmic specifications | 
Definition at line 143 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::ProjectedNewtonKrylovStep< Real >::ekv_, ROL::ProjectedNewtonKrylovStep< Real >::esec_, ROL::ProjectedNewtonKrylovStep< Real >::krylov_, ROL::ProjectedNewtonKrylovStep< Real >::krylovName_, ROL::ProjectedNewtonKrylovStep< Real >::secant_, ROL::ProjectedNewtonKrylovStep< Real >::secantName_, ROL::StringToEKrylov(), ROL::StringToESecant(), ROL::ProjectedNewtonKrylovStep< Real >::useProjectedGrad_, ROL::ProjectedNewtonKrylovStep< Real >::useSecantPrecond_, and ROL::ProjectedNewtonKrylovStep< Real >::verbosity_.
| 
 | inline | 
Constructor.
Constructor to build a ProjectedNewtonKrylovStep object with user-defined secant and Krylov objects. Algorithmic specifications are passed in through a ROL::ParameterList.
| [in] | parlist | is a parameter list containing algorithmic specifications | 
| [in] | krylov | is a user-defined Krylov object | 
| [in] | secant | is a user-defined secant object | 
Definition at line 175 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::ProjectedNewtonKrylovStep< Real >::ekv_, ROL::ProjectedNewtonKrylovStep< Real >::esec_, ROL::ProjectedNewtonKrylovStep< Real >::krylov_, ROL::ProjectedNewtonKrylovStep< Real >::krylovName_, ROL::ProjectedNewtonKrylovStep< Real >::secant_, ROL::ProjectedNewtonKrylovStep< Real >::secantName_, ROL::StringToEKrylov(), ROL::StringToESecant(), ROL::ProjectedNewtonKrylovStep< Real >::useProjectedGrad_, ROL::ProjectedNewtonKrylovStep< Real >::useSecantPrecond_, and ROL::ProjectedNewtonKrylovStep< Real >::verbosity_.
| 
 | inlinevirtual | 
Initialize step with bound constraint.
Reimplemented from ROL::Step< Real >.
Definition at line 209 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::Vector< Real >::clone(), ROL::ProjectedNewtonKrylovStep< Real >::d_, ROL::ProjectedNewtonKrylovStep< Real >::gp_, and ROL::Step< Real >::initialize().
| 
 | inlinevirtual | 
Compute step.
Reimplemented from ROL::Step< Real >.
Definition at line 217 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::ProjectedNewtonKrylovStep< Real >::flagKrylov_, ROL::Step< Real >::getState(), ROL::AlgorithmState< Real >::gnorm, ROL::AlgorithmState< Real >::iterateVec, ROL::ProjectedNewtonKrylovStep< Real >::iterKrylov_, ROL::ProjectedNewtonKrylovStep< Real >::krylov_, ROL::Vector< Real >::scale(), ROL::ProjectedNewtonKrylovStep< Real >::secant_, ROL::Vector< Real >::set(), and ROL::ProjectedNewtonKrylovStep< Real >::useSecantPrecond_.
| 
 | inlinevirtual | 
Update step, if successful.
Reimplemented from ROL::Step< Real >.
Definition at line 250 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::ProjectedNewtonKrylovStep< Real >::computeObj_, ROL::BoundConstraint< Real >::computeProjectedGradient(), ROL::ProjectedNewtonKrylovStep< Real >::d_, ROL::ProjectedNewtonKrylovStep< Real >::flagKrylov_, ROL::Step< Real >::getState(), ROL::AlgorithmState< Real >::gnorm, ROL::ProjectedNewtonKrylovStep< Real >::gp_, ROL::Objective< Real >::gradient(), ROL::AlgorithmState< Real >::iter, ROL::AlgorithmState< Real >::iterateVec, ROL::ProjectedNewtonKrylovStep< Real >::iterKrylov_, ROL::AlgorithmState< Real >::nfval, ROL::AlgorithmState< Real >::ngrad, ROL::Vector< Real >::norm(), ROL::Vector< Real >::plus(), ROL::BoundConstraint< Real >::project(), ROL::ProjectedNewtonKrylovStep< Real >::secant_, ROL::AlgorithmState< Real >::snorm, ROL::Objective< Real >::update(), ROL::ProjectedNewtonKrylovStep< Real >::useProjectedGrad_, ROL::ProjectedNewtonKrylovStep< Real >::useSecantPrecond_, ROL::Objective< Real >::value(), and ROL::AlgorithmState< Real >::value.
| 
 | inlinevirtual | 
Print iterate header.
Reimplemented from ROL::Step< Real >.
Definition at line 300 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::DESCENT_NEWTONKRYLOV, ROL::EDescentToString(), and ROL::ProjectedNewtonKrylovStep< Real >::verbosity_.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::print().
| 
 | inlinevirtual | 
Print step name.
Reimplemented from ROL::Step< Real >.
Definition at line 330 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::DESCENT_NEWTONKRYLOV, ROL::EDescentToString(), ROL::ProjectedNewtonKrylovStep< Real >::krylovName_, ROL::ProjectedNewtonKrylovStep< Real >::secantName_, and ROL::ProjectedNewtonKrylovStep< Real >::useSecantPrecond_.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::print().
| 
 | inlinevirtual | 
Print iterate status.
Reimplemented from ROL::Step< Real >.
Definition at line 340 of file ROL_ProjectedNewtonKrylovStep.hpp.
References ROL::ProjectedNewtonKrylovStep< Real >::flagKrylov_, ROL::AlgorithmState< Real >::gnorm, ROL::AlgorithmState< Real >::iter, ROL::ProjectedNewtonKrylovStep< Real >::iterKrylov_, ROL::AlgorithmState< Real >::nfval, ROL::AlgorithmState< Real >::ngrad, ROL::ProjectedNewtonKrylovStep< Real >::printHeader(), ROL::ProjectedNewtonKrylovStep< Real >::printName(), ROL::AlgorithmState< Real >::snorm, and ROL::AlgorithmState< Real >::value.
| 
 | private | 
Secant object (used for quasi-Newton)
Definition at line 36 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::compute(), ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Krylov solver object (used for inexact Newton)
Definition at line 37 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::compute(), and ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep().
| 
 | private | 
Definition at line 39 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep().
| 
 | private | 
Definition at line 40 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep().
| 
 | private | 
Definition at line 42 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::initialize(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Definition at line 43 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::initialize(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Number of Krylov iterations (used for inexact Newton)
Definition at line 45 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::compute(), ROL::ProjectedNewtonKrylovStep< Real >::print(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Termination flag for Krylov method (used for inexact Newton)
Definition at line 46 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::compute(), ROL::ProjectedNewtonKrylovStep< Real >::print(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Verbosity level.
Definition at line 47 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::printHeader(), and ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep().
| 
 | private | 
Definition at line 48 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Whether or not a secant approximation is used for preconditioning inexact Newton.
Definition at line 50 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::compute(), ROL::ProjectedNewtonKrylovStep< Real >::printName(), ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Whether or not to use to the projected gradient criticality measure.
Definition at line 51 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
| 
 | private | 
Definition at line 53 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::printName(), and ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep().
| 
 | private | 
Definition at line 54 of file ROL_ProjectedNewtonKrylovStep.hpp.
Referenced by ROL::ProjectedNewtonKrylovStep< Real >::printName(), and ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep().
 1.8.5
 1.8.5