ROL
|
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>
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 () | |
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 |
PV & | partition (V &x) const |
const PV & | partition (const V &x) const |
V & | getNew (V &x) const |
const V & | getNew (const V &x) const |
V & | getOld (V &x) const |
const V & | getOld (const V &x) const |
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.
using ROL::DynamicObjective< Real >::V = Vector<Real> |
Definition at line 41 of file ROL_DynamicObjective.hpp.
using ROL::DynamicObjective< Real >::TS = TimeStamp<Real> |
Definition at line 42 of file ROL_DynamicObjective.hpp.
|
inline |
Definition at line 44 of file ROL_DynamicObjective.hpp.
|
pure virtual |
Implemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::value_un(), ROL::details::DynamicObjective_CheckInterface< Real >::value_uo(), and ROL::details::DynamicObjective_CheckInterface< Real >::value_z().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 66 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::gradient_uo(), ROL::details::DynamicObjective_CheckInterface< Real >::gradient_uo_un(), ROL::details::DynamicObjective_CheckInterface< Real >::gradient_uo_uo(), and ROL::details::DynamicObjective_CheckInterface< Real >::gradient_uo_z().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 69 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::gradient_un(), ROL::details::DynamicObjective_CheckInterface< Real >::gradient_un_un(), ROL::details::DynamicObjective_CheckInterface< Real >::gradient_un_uo(), and ROL::details::DynamicObjective_CheckInterface< Real >::gradient_un_z().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 72 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::gradient_z(), ROL::details::DynamicObjective_CheckInterface< Real >::gradient_z_un(), ROL::details::DynamicObjective_CheckInterface< Real >::gradient_z_uo(), and ROL::details::DynamicObjective_CheckInterface< Real >::gradient_z_z().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 77 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_uo_uo().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 80 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_uo_un().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 83 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_uo_z().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 87 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_un_uo().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 90 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_un_un().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 93 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_un_z().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 97 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_z_uo().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 100 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_z_un().
|
inlinevirtual |
Reimplemented in ROL::DynamicTrackingFEMObjective< Real >, and ROL::DynamicTrackingObjective< Real >.
Definition at line 103 of file ROL_DynamicObjective.hpp.
Referenced by ROL::details::DynamicObjective_CheckInterface< Real >::hessVec_z_z().