ROL
ROL::ProjectedNewtonKrylovStep< Real > Class Template Reference

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 >:

Classes

class  HessianPNK
 
class  PrecondPNK
 

Public Member Functions

 ProjectedNewtonKrylovStep (ROL::ParameterList &parlist, const bool computeObj=true)
 Constructor.
 
 ProjectedNewtonKrylovStep (ROL::ParameterList &parlist, const ROL::Ptr< Krylov< Real > > &krylov, const ROL::Ptr< Secant< Real > > &secant, const bool computeObj=true)
 Constructor.
 
void initialize (Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 
void compute (Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 
void update (Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 
std::string printHeader (void) const
 Print iterate header.
 
std::string printName (void) const
 Print step name.
 
std::string print (AlgorithmState< Real > &algo_state, bool print_header=false) const
 
- Public Member Functions inherited from ROL::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.
 
virtual void initialize (Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state)
 Initialize step with bound constraint.
 
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.
 
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.
 
virtual void compute (Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 Compute step.
 
virtual void update (Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 Update step, if successful.
 
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).
 
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).
 
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).
 
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).
 
virtual std::string print (AlgorithmState< Real > &algo_state, bool printHeader=false) const
 Print iterate status.
 
const ROL::Ptr< const StepState< Real > > getStepState (void) const
 Get state for step object.
 
void reset (const Real searchSize=1.0)
 Get state for step object.
 

Private Attributes

ROL::Ptr< Secant< Real > > secant_
 Secant object (used for quasi-Newton)
 
ROL::Ptr< Krylov< Real > > krylov_
 Krylov solver object (used for inexact Newton)
 
EKrylov ekv_
 
ESecant esec_
 
ROL::Ptr< Vector< Real > > gp_
 
ROL::Ptr< Vector< Real > > d_
 
int iterKrylov_
 Number of Krylov iterations (used for inexact Newton)
 
int flagKrylov_
 Termination flag for Krylov method (used for inexact Newton)
 
int verbosity_
 Verbosity level.
 
const bool computeObj_
 
bool useSecantPrecond_
 Whether or not a secant approximation is used for preconditioning inexact Newton.
 
bool useProjectedGrad_
 Whether or not to use to the projected gradient criticality measure.
 
std::string krylovName_
 
std::string secantName_
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::ROL::Step< Real >
ROL::Ptr< StepState< Real > > getState (void)
 

Detailed Description

template<class Real>
class ROL::ProjectedNewtonKrylovStep< Real >

Provides the interface to compute optimization steps with projected inexact ProjectedNewton's method using line search.

Definition at line 67 of file ROL_ProjectedNewtonKrylovStep.hpp.

Constructor & Destructor Documentation

◆ ProjectedNewtonKrylovStep() [1/2]

◆ ProjectedNewtonKrylovStep() [2/2]

template<class Real >
ROL::ProjectedNewtonKrylovStep< Real >::ProjectedNewtonKrylovStep ( ROL::ParameterList & parlist,
const ROL::Ptr< Krylov< Real > > & krylov,
const ROL::Ptr< Secant< Real > > & secant,
const bool computeObj = true )
inline

Member Function Documentation

◆ initialize()

template<class Real >
void ROL::ProjectedNewtonKrylovStep< Real >::initialize ( Vector< Real > & x,
const Vector< Real > & s,
const Vector< Real > & g,
Objective< Real > & obj,
BoundConstraint< Real > & bnd,
AlgorithmState< Real > & algo_state )
inline

◆ compute()

◆ update()

◆ printHeader()

template<class Real >
std::string ROL::ProjectedNewtonKrylovStep< Real >::printHeader ( void ) const
inlinevirtual

◆ printName()

◆ print()

template<class Real >
std::string ROL::ProjectedNewtonKrylovStep< Real >::print ( AlgorithmState< Real > & algo_state,
bool print_header = false ) const
inline

Member Data Documentation

◆ secant_

◆ krylov_

◆ ekv_

◆ esec_

◆ gp_

template<class Real >
ROL::Ptr<Vector<Real> > ROL::ProjectedNewtonKrylovStep< Real >::gp_
private

◆ d_

template<class Real >
ROL::Ptr<Vector<Real> > ROL::ProjectedNewtonKrylovStep< Real >::d_
private

◆ iterKrylov_

template<class Real >
int ROL::ProjectedNewtonKrylovStep< Real >::iterKrylov_
private

◆ flagKrylov_

template<class Real >
int ROL::ProjectedNewtonKrylovStep< Real >::flagKrylov_
private

◆ verbosity_

◆ computeObj_

template<class Real >
const bool ROL::ProjectedNewtonKrylovStep< Real >::computeObj_
private

◆ useSecantPrecond_

◆ useProjectedGrad_

template<class Real >
bool ROL::ProjectedNewtonKrylovStep< Real >::useProjectedGrad_
private

◆ krylovName_

◆ secantName_


The documentation for this class was generated from the following file: