10 #ifndef ROL_LINEARCOMBINATIONOBJECTIVE_SIMOPT_H
11 #define ROL_LINEARCOMBINATIONOBJECTIVE_SIMOPT_H
14 #include "ROL_Ptr.hpp"
21 const std::vector<ROL::Ptr<Objective_SimOpt<Real> > >
obj_;
45 for (
size_t i=0; i<
size_; ++i) {
46 obj_[i]->update(u,z,type,iter);
51 for (
size_t i=0; i<
size_; ++i) {
52 obj_[i]->update(u,z,flag,iter);
58 for (
size_t i = 0; i <
size_; ++i) {
70 for (
size_t i = 0; i <
size_; ++i) {
82 for (
size_t i = 0; i <
size_; ++i) {
94 for (
size_t i = 0; i <
size_; ++i) {
106 for (
size_t i = 0; i <
size_; ++i) {
118 for (
size_t i = 0; i <
size_; ++i) {
130 for (
size_t i = 0; i <
size_; ++i) {
140 for (
size_t i = 0; i <
size_; ++i) {
141 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)
void update(const Vector< Real > &u, const Vector< Real > &z, UpdateType type, int iter=-1)
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_