ROL
|
Provides the interface to compute optimization steps with projected inexact Newton's method using line search. More...
#include <ROL_NewtonKrylov_U.hpp>
Classes | |
class | HessianNK |
class | PrecondNK |
Public Member Functions | |
NewtonKrylov_U (ParameterList &parlist) | |
Constructor. More... | |
NewtonKrylov_U (ParameterList &parlist, const Ptr< Krylov< Real >> &krylov, const Ptr< Secant< Real >> &secant, const bool computeObj=true) | |
Constructor. More... | |
void | compute (Vector< Real > &s, Real &snorm, Real &sdotg, int &iter, int &flag, const Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj) override |
void | update (const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &gold, const Vector< Real > &gnew, const Real snorm, const int iter) override |
std::string | printName (void) const override |
Public Member Functions inherited from ROL::DescentDirection_U< Real > | |
virtual | ~DescentDirection_U () |
virtual void | initialize (const Vector< Real > &x, const Vector< Real > &g) |
Private Attributes | |
Ptr< Secant< Real > > | secant_ |
Secant object (used for quasi-Newton) More... | |
Ptr< Krylov< Real > > | krylov_ |
Krylov solver object (used for inexact Newton) More... | |
Ptr< LinearOperator< Real > > | precond_ |
EKrylov | ekv_ |
ESecant | esec_ |
bool | useSecantPrecond_ |
Whether or not a secant approximation is used for preconditioning inexact Newton. More... | |
std::string | krylovName_ |
std::string | secantName_ |
Provides the interface to compute optimization steps with projected inexact Newton's method using line search.
Definition at line 29 of file ROL_NewtonKrylov_U.hpp.
|
inline |
Constructor.
Standard constructor to build a NewtonKrylovStep object. Algorithmic specifications are passed in through a ROL::ParameterList.
[in] | parlist | is a parameter list containing algorithmic specifications |
Definition at line 80 of file ROL_NewtonKrylov_U.hpp.
References ROL::NewtonKrylov_U< Real >::ekv_, ROL::NewtonKrylov_U< Real >::esec_, ROL::NewtonKrylov_U< Real >::krylov_, ROL::NewtonKrylov_U< Real >::krylovName_, ROL::NewtonKrylov_U< Real >::precond_, ROL::NewtonKrylov_U< Real >::secant_, ROL::NewtonKrylov_U< Real >::secantName_, ROL::StringToEKrylov(), ROL::StringToESecant(), and ROL::NewtonKrylov_U< Real >::useSecantPrecond_.
|
inline |
Constructor.
Constructor to build a NewtonKrylovStep 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 108 of file ROL_NewtonKrylov_U.hpp.
References ROL::NewtonKrylov_U< Real >::ekv_, ROL::NewtonKrylov_U< Real >::esec_, ROL::NewtonKrylov_U< Real >::krylov_, ROL::NewtonKrylov_U< Real >::krylovName_, ROL::NewtonKrylov_U< Real >::precond_, ROL::NewtonKrylov_U< Real >::secant_, ROL::NewtonKrylov_U< Real >::secantName_, ROL::StringToEKrylov(), ROL::StringToESecant(), and ROL::NewtonKrylov_U< Real >::useSecantPrecond_.
|
inlineoverridevirtual |
Implements ROL::DescentDirection_U< Real >.
Definition at line 141 of file ROL_NewtonKrylov_U.hpp.
References ROL::Vector< Real >::apply(), ROL::Vector< Real >::dual(), ROL::NewtonKrylov_U< Real >::krylov_, ROL::Vector< Real >::norm(), ROL::Vector< Real >::scale(), ROL::Vector< Real >::set(), and ROL::NewtonKrylov_U< Real >::useSecantPrecond_.
|
inlineoverridevirtual |
Reimplemented from ROL::DescentDirection_U< Real >.
Definition at line 167 of file ROL_NewtonKrylov_U.hpp.
References ROL::NewtonKrylov_U< Real >::secant_, and ROL::NewtonKrylov_U< Real >::useSecantPrecond_.
|
inlineoverridevirtual |
Reimplemented from ROL::DescentDirection_U< Real >.
Definition at line 176 of file ROL_NewtonKrylov_U.hpp.
References ROL::NewtonKrylov_U< Real >::krylovName_, ROL::NewtonKrylov_U< Real >::secantName_, and ROL::NewtonKrylov_U< Real >::useSecantPrecond_.
|
private |
Secant object (used for quasi-Newton)
Definition at line 32 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::NewtonKrylov_U(), and ROL::NewtonKrylov_U< Real >::update().
|
private |
Krylov solver object (used for inexact Newton)
Definition at line 33 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::compute(), and ROL::NewtonKrylov_U< Real >::NewtonKrylov_U().
|
private |
Definition at line 34 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::NewtonKrylov_U().
|
private |
Definition at line 36 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::NewtonKrylov_U().
|
private |
Definition at line 37 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::NewtonKrylov_U().
|
private |
Whether or not a secant approximation is used for preconditioning inexact Newton.
Definition at line 39 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::compute(), ROL::NewtonKrylov_U< Real >::NewtonKrylov_U(), ROL::NewtonKrylov_U< Real >::printName(), and ROL::NewtonKrylov_U< Real >::update().
|
private |
Definition at line 41 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::NewtonKrylov_U(), and ROL::NewtonKrylov_U< Real >::printName().
|
private |
Definition at line 42 of file ROL_NewtonKrylov_U.hpp.
Referenced by ROL::NewtonKrylov_U< Real >::NewtonKrylov_U(), and ROL::NewtonKrylov_U< Real >::printName().