ROL
ROL::NonlinearCGStep< Real > Class Template Reference

Provides the interface to compute optimization steps with nonlinear CG. More...

#include <ROL_NonlinearCGStep.hpp>

Inheritance diagram for ROL::NonlinearCGStep< Real >:

Public Member Functions

 NonlinearCGStep (ROL::ParameterList &parlist, const ROL::Ptr< NonlinearCG< Real > > &nlcg=ROL::nullPtr, const bool computeObj=true)
 Constructor.
void compute (Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &bnd, AlgorithmState< Real > &algo_state)
 Compute step.
void update (Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &con, AlgorithmState< Real > &algo_state)
 Update step, if successful.
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
 Print iterate status.
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.
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, 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).
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< NonlinearCG< Real > > nlcg_
 NonlinearCG object (used for quasi-Newton).
ENonlinearCG enlcg_
int verbosity_
 Verbosity setting.
const bool computeObj_
std::string ncgName_

Additional Inherited Members

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

Detailed Description

template<class Real>
class ROL::NonlinearCGStep< Real >

Provides the interface to compute optimization steps with nonlinear CG.

Definition at line 26 of file ROL_NonlinearCGStep.hpp.

Constructor & Destructor Documentation

◆ NonlinearCGStep()

template<class Real>
ROL::NonlinearCGStep< Real >::NonlinearCGStep ( ROL::ParameterList & parlist,
const ROL::Ptr< NonlinearCG< Real > > & nlcg = ROL::nullPtr,
const bool computeObj = true )
inline

Constructor.

Constructor to build a NonlinearCGStep object with a user-defined nonlinear CG object. Algorithmic specifications are passed in through a ROL::ParameterList.

Parameters
[in]parlistis a parameter list containing algorithmic specifications
[in]nlcgis a user-defined NonlinearCG object

Definition at line 51 of file ROL_NonlinearCGStep.hpp.

References computeObj_, enlcg_, ncgName_, nlcg_, ROL::NONLINEARCG_USERDEFINED, ROL::Step< Real >::Step(), ROL::StringToENonlinearCG(), and verbosity_.

Member Function Documentation

◆ compute()

template<class Real>
void ROL::NonlinearCGStep< Real >::compute ( Vector< Real > & s,
const Vector< Real > & x,
Objective< Real > & obj,
BoundConstraint< Real > & bnd,
AlgorithmState< Real > & algo_state )
inlinevirtual

Compute step.

Reimplemented from ROL::Step< Real >.

Definition at line 72 of file ROL_NonlinearCGStep.hpp.

References ROL::Step< Real >::getState(), nlcg_, and ROL::Vector< Real >::scale().

◆ update()

◆ printHeader()

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

Print iterate header.

Reimplemented from ROL::Step< Real >.

Definition at line 108 of file ROL_NonlinearCGStep.hpp.

References ROL::DESCENT_NONLINEARCG, ROL::EDescentToString(), and verbosity_.

Referenced by print().

◆ printName()

template<class Real>
std::string ROL::NonlinearCGStep< Real >::printName ( void ) const
inlinevirtual

Print step name.

Reimplemented from ROL::Step< Real >.

Definition at line 134 of file ROL_NonlinearCGStep.hpp.

References ROL::DESCENT_NONLINEARCG, ROL::EDescentToString(), and ncgName_.

Referenced by print().

◆ print()

template<class Real>
std::string ROL::NonlinearCGStep< Real >::print ( AlgorithmState< Real > & algo_state,
bool printHeader = false ) const
inlinevirtual

Member Data Documentation

◆ nlcg_

template<class Real>
ROL::Ptr<NonlinearCG<Real> > ROL::NonlinearCGStep< Real >::nlcg_
private

NonlinearCG object (used for quasi-Newton).

Definition at line 29 of file ROL_NonlinearCGStep.hpp.

Referenced by compute(), and NonlinearCGStep().

◆ enlcg_

template<class Real>
ENonlinearCG ROL::NonlinearCGStep< Real >::enlcg_
private

Definition at line 30 of file ROL_NonlinearCGStep.hpp.

Referenced by NonlinearCGStep().

◆ verbosity_

template<class Real>
int ROL::NonlinearCGStep< Real >::verbosity_
private

Verbosity setting.

Definition at line 31 of file ROL_NonlinearCGStep.hpp.

Referenced by NonlinearCGStep(), and printHeader().

◆ computeObj_

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

Definition at line 32 of file ROL_NonlinearCGStep.hpp.

Referenced by NonlinearCGStep(), and update().

◆ ncgName_

template<class Real>
std::string ROL::NonlinearCGStep< Real >::ncgName_
private

Definition at line 34 of file ROL_NonlinearCGStep.hpp.

Referenced by NonlinearCGStep(), and printName().


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