ROL
ROL::DynamicObjective< Real > Class Template Referenceabstract

Defines the time-dependent objective function interface for simulation-based optimization. Computes time-local contributions of value, gradient, Hessian-vector product etc to a larger composite objective defined over the simulation time. In contrast to other objective classes Objective_TimeSimOpt has a default implementation of value which returns zero, as time-dependent simulation based optimization problems may have an objective value which depends only on the final state of the system. More...

#include <ROL_DynamicObjective.hpp>

Inheritance diagram for ROL::DynamicObjective< Real >:

Public Types

using V = Vector<Real>
using TS = TimeStamp<Real>
Public Types inherited from ROL::DynamicFunction< Real >
using V = Vector<Real>
using PV = PartitionedVector<Real>
using TS = TimeStamp<Real>

Public Member Functions

 DynamicObjective ()
 DynamicObjective (std::initializer_list< std::string > zero_deriv_terms)
virtual ~DynamicObjective ()
virtual void update (const V &uo, const V &un, const V &z, const TS &timeStamp)
virtual Real value (const V &uo, const V &un, const V &z, const TS &timeStamp) const =0
virtual void gradient_uo (V &g, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void gradient_un (V &g, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void gradient_z (V &g, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_uo_uo (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_uo_un (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_uo_z (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_un_uo (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_un_un (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_un_z (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_z_uo (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_z_un (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual void hessVec_z_z (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const
Public Member Functions inherited from ROL::DynamicFunction< Real >
 DynamicFunction (std::initializer_list< std::string > zero_deriv_terms={})
virtual ~DynamicFunction ()
virtual void update_uo (const V &x, const TS &ts)
virtual void update_un (const V &x, const TS &ts)
virtual void update_z (const V &x, const TS &ts)
bool is_zero_derivative (const std::string &key)

Additional Inherited Members

Protected Member Functions inherited from ROL::DynamicFunction< Real >
VectorWorkspace< Real > & getVectorWorkspace () const
PVpartition (V &x) const
const PVpartition (const V &x) const
VgetNew (V &x) const
const VgetNew (const V &x) const
VgetOld (V &x) const
const VgetOld (const V &x) const

Detailed Description

template<typename Real>
class ROL::DynamicObjective< Real >

Defines the time-dependent objective function interface for simulation-based optimization. Computes time-local contributions of value, gradient, Hessian-vector product etc to a larger composite objective defined over the simulation time. In contrast to other objective classes Objective_TimeSimOpt has a default implementation of value which returns zero, as time-dependent simulation based optimization problems may have an objective value which depends only on the final state of the system.

Often in applications, the objective is separable into a state objective and a control objective so the state-control cross terms in the Hessian are zero.

A typical use case involves quadratic terms for the state and control, such that all of the diagonal blocks of the Hessian are nonzero and the off-diagonal blocks are zero.

Definition at line 38 of file ROL_DynamicObjective.hpp.

Member Typedef Documentation

◆ V

template<typename Real>
using ROL::DynamicObjective< Real >::V = Vector<Real>

Definition at line 41 of file ROL_DynamicObjective.hpp.

◆ TS

template<typename Real>
using ROL::DynamicObjective< Real >::TS = TimeStamp<Real>

Definition at line 42 of file ROL_DynamicObjective.hpp.

Constructor & Destructor Documentation

◆ DynamicObjective() [1/2]

template<typename Real>
ROL::DynamicObjective< Real >::DynamicObjective ( )
inline

Definition at line 44 of file ROL_DynamicObjective.hpp.

References DynamicObjective().

Referenced by DynamicObjective().

◆ DynamicObjective() [2/2]

template<typename Real>
ROL::DynamicObjective< Real >::DynamicObjective ( std::initializer_list< std::string > zero_deriv_terms)
inline

◆ ~DynamicObjective()

template<typename Real>
virtual ROL::DynamicObjective< Real >::~DynamicObjective ( )
inlinevirtual

Definition at line 49 of file ROL_DynamicObjective.hpp.

Member Function Documentation

◆ update()

◆ value()

◆ gradient_uo()

◆ gradient_un()

◆ gradient_z()

◆ hessVec_uo_uo()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_uo_uo ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_uo_un()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_uo_un ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_uo_z()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_uo_z ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_un_uo()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_un_uo ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_un_un()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_un_un ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_un_z()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_un_z ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_z_uo()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_z_uo ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_z_un()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_z_un ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

◆ hessVec_z_z()

template<typename Real>
virtual void ROL::DynamicObjective< Real >::hessVec_z_z ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlinevirtual

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