ROL
ROL::NonlinearLeastSquaresObjective_Dynamic< Real > Class Template Reference

Provides the interface to evaluate nonlinear least squares objective functions. More...

#include <ROL_NonlinearLeastSquaresObjective_Dynamic.hpp>

Inheritance diagram for ROL::NonlinearLeastSquaresObjective_Dynamic< Real >:

Public Member Functions

 NonlinearLeastSquaresObjective_Dynamic (const Ptr< DynamicConstraint< Real > > &con, const Vector< Real > &c, const Ptr< const Vector< Real > > &uo, const Ptr< const Vector< Real > > &z, const Ptr< const TimeStamp< Real > > &ts, const bool GNH=false)
 Constructor.
void update (const Vector< Real > &u, bool flag=true, int iter=-1)
Real value (const Vector< Real > &x, Real &tol)
void gradient (Vector< Real > &g, const Vector< Real > &u, Real &tol)
void hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, Real &tol)
void precond (Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &u, Real &tol)
Public Member Functions inherited from ROL::ROL::Objective< Real >
virtual ~Objective ()
 Objective ()
virtual void update (const Vector< Real > &x, UpdateType type, int iter=-1)
 Update objective function.
virtual void update (const Vector< Real > &x, bool flag=true, int iter=-1)
 Update objective function.
virtual Real value (const Vector< Real > &x, Real &tol)=0
 Compute value.
virtual void gradient (Vector< Real > &g, const Vector< Real > &x, Real &tol)
 Compute gradient.
virtual Real dirDeriv (const Vector< Real > &x, const Vector< Real > &d, Real &tol)
 Compute directional derivative.
virtual void hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply Hessian approximation to vector.
virtual void invHessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply inverse Hessian approximation to vector.
virtual void precond (Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply preconditioner to vector.
virtual void prox (Vector< Real > &Pv, const Vector< Real > &v, Real t, Real &tol)
 Compute the proximity operator.
virtual void proxJacVec (Vector< Real > &Jv, const Vector< Real > &v, const Vector< Real > &x, Real t, Real &tol)
 Apply the Jacobian of the proximity operator.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference gradient check.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference gradient check.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference gradient check with specified step sizes.
virtual std::vector< std::vector< Real > > checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference gradient check with specified step sizes.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference Hessian-applied-to-vector check.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference Hessian-applied-to-vector check.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference Hessian-applied-to-vector check with specified step sizes.
virtual std::vector< std::vector< Real > > checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference Hessian-applied-to-vector check with specified step sizes.
virtual std::vector< Real > checkHessSym (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout)
 Hessian symmetry check.
virtual std::vector< Real > checkHessSym (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout)
 Hessian symmetry check.
virtual std::vector< std::vector< Real > > checkProxJacVec (const Vector< Real > &x, const Vector< Real > &v, Real t=Real(1), bool printToStream=true, std::ostream &outStream=std::cout, int numSteps=ROL_NUM_CHECKDERIV_STEPS)
 Finite-difference proximity operator Jacobian-applied-to-vector check.
virtual void setParameter (const std::vector< Real > &param)

Private Attributes

const Ptr< DynamicConstraint< Real > > con_
const Ptr< const Vector< Real > > uo_
const Ptr< const Vector< Real > > z_
const Ptr< const TimeStamp< Real > > ts_
const bool GaussNewtonHessian_
Ptr< Vector< Real > > c1_
Ptr< Vector< Real > > c2_
Ptr< Vector< Real > > cdual_
Ptr< Vector< Real > > udual_

Additional Inherited Members

Protected Member Functions inherited from ROL::ROL::Objective< Real >
const std::vector< Real > getParameter (void) const

Detailed Description

template<class Real>
class ROL::NonlinearLeastSquaresObjective_Dynamic< Real >

Provides the interface to evaluate nonlinear least squares objective functions.

ROL's nonlinear least squares objective function interface constructs the the nonlinear least squares objective function associated with the equality constraint \(c_n(u_{n-1},u_n,z)=0\). That is, given \(z\) and \(u_{n-1}\),

\[ J(u) = \langle \mathfrak{R} c_n(u_{n-1},u,z),c_n(u_{n-1},u,z) \rangle_{\mathcal{C}^*,\mathcal{C}} \]

where \(c_n:\mathcal{U}\times\mathcal{U}\times\mathcal{Z}\to\mathcal{C}\) and \(\mathfrak{R}\in\mathcal{L}(\mathcal{C},\mathcal{C}^*)\) denotes the Riesz map from \(\mathcal{C}\) into \(\mathcal{C}^*\).


Definition at line 42 of file ROL_NonlinearLeastSquaresObjective_Dynamic.hpp.

Constructor & Destructor Documentation

◆ NonlinearLeastSquaresObjective_Dynamic()

template<class Real>
ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::NonlinearLeastSquaresObjective_Dynamic ( const Ptr< DynamicConstraint< Real > > & con,
const Vector< Real > & c,
const Ptr< const Vector< Real > > & uo,
const Ptr< const Vector< Real > > & z,
const Ptr< const TimeStamp< Real > > & ts,
const bool GNH = false )
inline

Constructor.

This function constructs a nonlinear least squares objective function.

Parameters
[in]conis the nonlinear equation to be solved.
[in]vecis a constraint space vector used for cloning.
[in]GHNis a flag dictating whether or not to use the Gauss-Newton Hessian.

Definition at line 60 of file ROL_NonlinearLeastSquaresObjective_Dynamic.hpp.

References c1_, c2_, cdual_, ROL::Vector< Real >::clone(), con_, ROL::Vector< Real >::dual(), GaussNewtonHessian_, ts_, udual_, uo_, and z_.

Member Function Documentation

◆ update()

template<class Real>
void ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::update ( const Vector< Real > & u,
bool flag = true,
int iter = -1 )
inline

Definition at line 73 of file ROL_NonlinearLeastSquaresObjective_Dynamic.hpp.

References c1_, cdual_, con_, ts_, uo_, and z_.

◆ value()

template<class Real>
Real ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::value ( const Vector< Real > & x,
Real & tol )
inline

Definition at line 80 of file ROL_NonlinearLeastSquaresObjective_Dynamic.hpp.

References c1_, and cdual_.

◆ gradient()

template<class Real>
void ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::gradient ( Vector< Real > & g,
const Vector< Real > & u,
Real & tol )
inline

Definition at line 85 of file ROL_NonlinearLeastSquaresObjective_Dynamic.hpp.

References cdual_, con_, ts_, uo_, and z_.

◆ hessVec()

template<class Real>
void ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::hessVec ( Vector< Real > & hv,
const Vector< Real > & v,
const Vector< Real > & u,
Real & tol )
inline

◆ precond()

template<class Real>
void ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::precond ( Vector< Real > & pv,
const Vector< Real > & v,
const Vector< Real > & u,
Real & tol )
inline

Definition at line 98 of file ROL_NonlinearLeastSquaresObjective_Dynamic.hpp.

References cdual_, con_, ts_, uo_, and z_.

Member Data Documentation

◆ con_

◆ uo_

template<class Real>
const Ptr<const Vector<Real> > ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::uo_
private

◆ z_

template<class Real>
const Ptr<const Vector<Real> > ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::z_
private

◆ ts_

template<class Real>
const Ptr<const TimeStamp<Real> > ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::ts_
private

◆ GaussNewtonHessian_

template<class Real>
const bool ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::GaussNewtonHessian_
private

◆ c1_

template<class Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::c1_
private

◆ c2_

template<class Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::c2_
private

◆ cdual_

template<class Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::cdual_
private

◆ udual_

template<class Real>
Ptr<Vector<Real> > ROL::NonlinearLeastSquaresObjective_Dynamic< Real >::udual_
private

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