45 #ifndef ROL_REDUCED_OBJECTIVE_SIMOPT_H
46 #define ROL_REDUCED_OBJECTIVE_SIMOPT_H
57 const ROL::Ptr<Objective_SimOpt<Real> >
obj_;
58 const ROL::Ptr<Constraint_SimOpt<Real> >
con_;
82 bool isComputed =
false;
109 bool isComputed =
false;
119 adjoint_->scale(static_cast<Real>(-1));
177 const bool storage =
true,
178 const bool useFDhessVec =
false)
216 const bool storage =
true,
217 const bool useFDhessVec =
false)
251 const bool storage =
true,
252 const bool useFDhessVec =
false)
291 const bool storage =
true,
292 const bool useFDhessVec =
false)
383 con_->setParameter(param);
384 obj_->setParameter(param);
Provides the interface to evaluate objective functions.
Provides the interface to evaluate simulation-based objective functions.
const ROL::Ptr< Objective_SimOpt< Real > > obj_
virtual void precond(Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &z, Real &tol)
Apply a reduced Hessian preconditioner.
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
ROL::Ptr< Vector< Real > > adjoint_
ROL::Ptr< Vector< Real > > adjoint_sens_
virtual void plus(const Vector &x)=0
Compute , where .
ROL::Ptr< SimController< Real > > stateStore_
void setParameter(const std::vector< Real > ¶m)
virtual void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply Hessian approximation to vector.
ROL::Ptr< Vector< Real > > dualadjoint_
void solve_state_equation(const Vector< Real > &z, Real &tol)
Defines the linear algebra or vector space interface.
ROL::Ptr< Vector< Real > > dualcontrol_
void update(const Vector< Real > &z, bool flag=true, int iter=-1)
Update the SimOpt objective function and equality constraint.
const ROL::Ptr< Constraint_SimOpt< Real > > con_
ROL::Ptr< SimController< Real > > adjointStore_
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &z, Real &tol)
Given , evaluate the Hessian of the objective function in the direction .
void solve_adjoint_sensitivity(const Vector< Real > &v, const Vector< Real > &z, Real &tol)
Given , the adjoint variable , and a direction , solve the adjoint sensitvity equation for ...
void gradient(Vector< Real > &g, const Vector< Real > &z, Real &tol)
Given , evaluate the gradient of the objective function where solves .
ROL::Ptr< Vector< Real > > state_
Reduced_Objective_SimOpt(const ROL::Ptr< Objective_SimOpt< Real > > &obj, const ROL::Ptr< Constraint_SimOpt< Real > > &con, const ROL::Ptr< SimController< Real > > &stateStore, const ROL::Ptr< Vector< Real > > &state, const ROL::Ptr< Vector< Real > > &control, const ROL::Ptr< Vector< Real > > &adjoint, const bool storage=true, const bool useFDhessVec=false)
Constructor.
ROL::Ptr< Vector< Real > > dualstate1_
Real value(const Vector< Real > &z, Real &tol)
Given , evaluate the objective function where solves .
void solve_adjoint_equation(const Vector< Real > &z, Real &tol)
Given which solves the state equation, solve the adjoint equation for .
virtual void setParameter(const std::vector< Real > ¶m)
ROL::Ptr< Vector< Real > > state_sens_
virtual void set(const Vector &x)
Set where .
Defines the constraint operator interface for simulation-based optimization.
void solve_state_sensitivity(const Vector< Real > &v, const Vector< Real > &z, Real &tol)
Given which solves the state equation and a direction , solve the state senstivity equation for ...
Reduced_Objective_SimOpt(const ROL::Ptr< Objective_SimOpt< Real > > &obj, const ROL::Ptr< Constraint_SimOpt< Real > > &con, const ROL::Ptr< Vector< Real > > &state, const ROL::Ptr< Vector< Real > > &control, const ROL::Ptr< Vector< Real > > &adjoint, const ROL::Ptr< Vector< Real > > &dualstate, const ROL::Ptr< Vector< Real > > &dualcontrol, const ROL::Ptr< Vector< Real > > &dualadjoint, const bool storage=true, const bool useFDhessVec=false)
Secondary, general constructor for use with dual optimization vector spaces where the user does not d...
Reduced_Objective_SimOpt(const ROL::Ptr< Objective_SimOpt< Real > > &obj, const ROL::Ptr< Constraint_SimOpt< Real > > &con, const ROL::Ptr< Vector< Real > > &state, const ROL::Ptr< Vector< Real > > &control, const ROL::Ptr< Vector< Real > > &adjoint, const bool storage=true, const bool useFDhessVec=false)
Constructor.
ROL::Ptr< Vector< Real > > dualstate_
Reduced_Objective_SimOpt(const ROL::Ptr< Objective_SimOpt< Real > > &obj, const ROL::Ptr< Constraint_SimOpt< Real > > &con, const ROL::Ptr< SimController< Real > > &stateStore, const ROL::Ptr< Vector< Real > > &state, const ROL::Ptr< Vector< Real > > &control, const ROL::Ptr< Vector< Real > > &adjoint, const ROL::Ptr< Vector< Real > > &dualstate, const ROL::Ptr< Vector< Real > > &dualcontrol, const ROL::Ptr< Vector< Real > > &dualadjoint, const bool storage=true, const bool useFDhessVec=false)
Secondary, general constructor for use with dual optimization vector spaces where the user does not d...