44 #ifndef ROL_LINEARCOMBINATIONOBJECTIVE_SIMOPT_H
45 #define ROL_LINEARCOMBINATIONOBJECTIVE_SIMOPT_H
48 #include "ROL_Ptr.hpp"
55 const std::vector<ROL::Ptr<Objective_SimOpt<Real> > >
obj_;
79 for (
size_t i=0; i<
size_; ++i) {
80 obj_[i]->update(u,z,flag,iter);
86 for (
size_t i = 0; i <
size_; ++i) {
98 for (
size_t i = 0; i <
size_; ++i) {
110 for (
size_t i = 0; i <
size_; ++i) {
122 for (
size_t i = 0; i <
size_; ++i) {
134 for (
size_t i = 0; i <
size_; ++i) {
146 for (
size_t i = 0; i <
size_; ++i) {
158 for (
size_t i = 0; i <
size_; ++i) {
168 for (
size_t i = 0; i <
size_; ++i) {
169 obj_[i]->setParameter(param);
void hessVec_12(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
Provides the interface to evaluate simulation-based objective functions.
void update(const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1)
Update objective function. u is an iterate, z is an iterate, flag = true if the iterate has changed...
virtual ROL::Ptr< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
LinearCombinationObjective_SimOpt(const std::vector< ROL::Ptr< Objective_SimOpt< Real > > > &obj)
const double weights[4][5]
Real value(const Vector< Real > &u, const Vector< Real > &z, Real &tol)
Compute value.
virtual void axpy(const Real alpha, const Vector &x)
Compute where .
void setParameter(const std::vector< Real > ¶m)
ROL::Ptr< Vector< Real > > udual_
const std::vector< ROL::Ptr< Objective_SimOpt< Real > > > obj_
void hessVec_22(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
virtual void zero()
Set to zero vector.
Defines the linear algebra or vector space interface.
void gradient_1(Vector< Real > &g, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
Compute gradient with respect to first component.
LinearCombinationObjective_SimOpt(const std::vector< Real > &weights, const std::vector< ROL::Ptr< Objective_SimOpt< Real > > > &obj)
void hessVec_21(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
void gradient_2(Vector< Real > &g, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
Compute gradient with respect to second component.
virtual void setParameter(const std::vector< Real > ¶m)
void hessVec_11(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
Apply Hessian approximation to vector.
ROL::Ptr< Vector< Real > > zdual_
std::vector< Real > weights_