11 #ifndef ROL_DYNAMICOBJECTIVE_HPP
12 #define ROL_DYNAMICOBJECTIVE_HPP
37 template<
typename Real>
51 virtual void update(
const V& uo,
const V& un,
const V& z,
const TS& timeStamp ) {
57 using DynamicFunction<Real>::update_uo;
58 using DynamicFunction<Real>::update_un;
59 using DynamicFunction<Real>::update_z;
61 virtual Real
value(
const V& uo,
const V& un,
62 const V& z,
const TS& timeStamp )
const = 0;
67 const V& z,
const TS& timeStamp )
const {}
70 const V& z,
const TS& timeStamp )
const {}
73 const V& z,
const TS& timeStamp )
const {}
78 const V& z,
const TS& timeStamp )
const {}
81 const V& z,
const TS& timeStamp )
const {}
84 const V& z,
const TS& timeStamp )
const {}
88 const V& z,
const TS& timeStamp )
const {}
91 const V& z,
const TS& timeStamp )
const {}
94 const V& z,
const TS& timeStamp )
const {}
98 const V& z,
const TS& timeStamp )
const {}
101 const V& z,
const TS& timeStamp )
const {}
104 const V& z,
const TS& timeStamp )
const {}
110 #endif // ROL_DYNAMICOBJECTIVE_HPP
DynamicFunction(std::initializer_list< std::string > zero_deriv_terms={})
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 update(const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) override
Provides update interface, casting and vector management to DynamicConstraint and DynamicObjective...
Defines the linear algebra or vector space interface.
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.
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 update_z(const V &x, const TS &ts)
virtual void update_uo(const V &x, const TS &ts)
virtual void hessVec_z_z(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 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_un_un(V &hv, const V &v, 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 update_un(const V &x, const TS &ts)
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_z_uo(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 gradient_uo(V &g, const V &uo, const V &un, const V &z, const TS &timeStamp) const
virtual Real value(const V &uo, const V &un, const V &z, const TS &timeStamp) const =0