44#ifndef ROL_REDUCED_OBJECTIVE_SIMOPT_H
45#define ROL_REDUCED_OBJECTIVE_SIMOPT_H
54template<
typename Real>
57 const Ptr<Objective_SimOpt<Real>>
obj_;
58 const Ptr<Constraint_SimOpt<Real>>
con_;
103 const bool storage =
true,
104 const bool useFDhessVec =
false);
128 const bool storage =
true,
129 const bool useFDhessVec =
false);
149 const bool storage =
true,
150 const bool useFDhessVec =
false);
176 const bool storage =
true,
177 const bool useFDhessVec =
false);
216 void setParameter(
const std::vector<Real> ¶m)
override;
Defines the constraint operator interface for simulation-based optimization.
Provides the interface to evaluate simulation-based objective functions.
Provides the interface to evaluate objective functions.
virtual void precond(Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &z, Real &tol) override
Apply a reduced Hessian preconditioner.
Ptr< VectorController< Real > > adjointStore_
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &z, Real &tol) override
Given , evaluate the Hessian of the objective function in the direction .
Ptr< Vector< Real > > dualadjoint_
Ptr< Vector< Real > > state_
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 .
Ptr< Vector< Real > > dualstate1_
Ptr< Vector< Real > > dualcontrol_
Ptr< Vector< Real > > adjoint_
Real value(const Vector< Real > &z, Real &tol) override
Given , evaluate the objective function where solves .
const Ptr< Constraint_SimOpt< Real > > con_
Reduced_Objective_SimOpt(const Ptr< Objective_SimOpt< Real > > &obj, const Ptr< Constraint_SimOpt< Real > > &con, const Ptr< Vector< Real > > &state, const Ptr< Vector< Real > > &control, const Ptr< Vector< Real > > &adjoint, const bool storage=true, const bool useFDhessVec=false)
Constructor.
Ptr< Vector< Real > > adjoint_sens_
void solve_adjoint_equation(const Vector< Real > &z, Real &tol)
Given which solves the state equation, solve the adjoint equation for .
Ptr< VectorController< Real > > stateStore_
void update(const Vector< Real > &z, bool flag=true, int iter=-1) override
Update the SimOpt objective function and equality constraint.
void solve_state_equation(const Vector< Real > &z, Real &tol)
void gradient(Vector< Real > &g, const Vector< Real > &z, Real &tol) override
Given , evaluate the gradient of the objective function where solves .
Ptr< Vector< Real > > state_sens_
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 setParameter(const std::vector< Real > ¶m) override
void summarize(std::ostream &stream, const Ptr< BatchManager< Real > > &bman=nullPtr) const
const Ptr< Objective_SimOpt< Real > > obj_
Ptr< Vector< Real > > dualstate_
Defines the linear algebra or vector space interface.