Piro  Development
Public Member Functions | List of all members
Piro::Reduced_Objective_SimOpt< Real > Class Template Reference
Inheritance diagram for Piro::Reduced_Objective_SimOpt< Real >:
Inheritance graph
[legend]
Collaboration diagram for Piro::Reduced_Objective_SimOpt< Real >:
Collaboration graph
[legend]

Public Member Functions

 Reduced_Objective_SimOpt (const ROL::Ptr< ROL::Objective_SimOpt< Real >> &obj, const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &con, const ROL::Ptr< ROL::Vector< Real >> &state, const ROL::Ptr< ROL::Vector< Real >> &control, const ROL::Ptr< ROL::Vector< Real >> &adjoint, const bool storage=true, const bool useFDhessVec=false)
 Constructor. More...
 
 Reduced_Objective_SimOpt (const ROL::Ptr< ROL::Objective_SimOpt< Real >> &obj, const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &con, const ROL::Ptr< ROL::Vector< Real >> &state, const ROL::Ptr< ROL::Vector< Real >> &control, const ROL::Ptr< ROL::Vector< Real >> &adjoint, const ROL::Ptr< ROL::Vector< Real >> &dualstate, const ROL::Ptr< ROL::Vector< Real >> &dualcontrol, const ROL::Ptr< ROL::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 define the dual() method. More...
 
 Reduced_Objective_SimOpt (const ROL::Ptr< ROL::Objective_SimOpt< Real >> &obj, const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &con, const ROL::Ptr< ROL::VectorController< Real >> &stateStore, const ROL::Ptr< ROL::Vector< Real >> &state, const ROL::Ptr< ROL::Vector< Real >> &control, const ROL::Ptr< ROL::Vector< Real >> &adjoint, const bool storage=true, const bool useFDhessVec=false)
 Constructor. More...
 
 Reduced_Objective_SimOpt (const ROL::Ptr< ROL::Objective_SimOpt< Real >> &obj, const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &con, const ROL::Ptr< ROL::VectorController< Real >> &stateStore, const ROL::Ptr< ROL::Vector< Real >> &state, const ROL::Ptr< ROL::Vector< Real >> &control, const ROL::Ptr< ROL::Vector< Real >> &adjoint, const ROL::Ptr< ROL::Vector< Real >> &dualstate, const ROL::Ptr< ROL::Vector< Real >> &dualcontrol, const ROL::Ptr< ROL::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 define the dual() method. More...
 
void update (const ROL::Vector< Real > &z, bool flag=true, int iter=-1)
 Update the SimOpt objective function and equality constraint.
 
Real value (const ROL::Vector< Real > &z, Real &tol)
 Given $z\in\mathcal{Z}$, evaluate the objective function $\widehat{J}(z) = J(u(z),z)$ where $u=u(z)\in\mathcal{U}$ solves $e(u,z) = 0$.
 
void gradient (ROL::Vector< Real > &g, const ROL::Vector< Real > &z, Real &tol)
 Given $z\in\mathcal{Z}$, evaluate the gradient of the objective function $\nabla\widehat{J}(z) = J_z(z) + c_z(u,z)^*\lambda$ where $\lambda=\lambda(u,z)\in\mathcal{C}^*$ solves $e_u(u,z)^*\lambda+J_u(u,z) = 0$.
 
void hessVec (ROL::Vector< Real > &hv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &z, Real &tol)
 Given $z\in\mathcal{Z}$, evaluate the Hessian of the objective function $\nabla^2\widehat{J}(z)$ in the direction $v\in\mathcal{Z}$.
 
virtual void precond (ROL::Vector< Real > &Pv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &z, Real &tol)
 Apply a reduced Hessian preconditioner.
 
void setParameter (const std::vector< Real > &param)
 
void set_precomputed_state (const ROL::Vector< Real > &u, const ROL::Vector< Real > &z)
 Given $z\in\mathcal{Z}$, store a precomputed state $u=u(z)\in\mathcal{U}$ which solves $e(u,z) = 0$ and update the SimOpt objective function and equality constraint accordingly.
 

Constructor & Destructor Documentation

◆ Reduced_Objective_SimOpt() [1/4]

template<class Real >
Piro::Reduced_Objective_SimOpt< Real >::Reduced_Objective_SimOpt ( const ROL::Ptr< ROL::Objective_SimOpt< Real >> &  obj,
const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &  con,
const ROL::Ptr< ROL::Vector< Real >> &  state,
const ROL::Ptr< ROL::Vector< Real >> &  control,
const ROL::Ptr< ROL::Vector< Real >> &  adjoint,
const bool  storage = true,
const bool  useFDhessVec = false 
)
inline

Constructor.

Parameters
[in]objis a pointer to a SimOpt objective function.
[in]conis a pointer to a SimOpt equality constraint.
[in]stateis a pointer to a state space vector, $\mathcal{U}$.
[in]controlis a pointer to a optimization space vector, $\mathcal{Z}$.
[in]adjointis a pointer to a dual constraint space vector, $\mathcal{C}^*$.
[in]storageis a flag whether or not to store computed states and adjoints.
[in]useFDhessVecis a flag whether or not to use a finite-difference Hessian approximation.

◆ Reduced_Objective_SimOpt() [2/4]

template<class Real >
Piro::Reduced_Objective_SimOpt< Real >::Reduced_Objective_SimOpt ( const ROL::Ptr< ROL::Objective_SimOpt< Real >> &  obj,
const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &  con,
const ROL::Ptr< ROL::Vector< Real >> &  state,
const ROL::Ptr< ROL::Vector< Real >> &  control,
const ROL::Ptr< ROL::Vector< Real >> &  adjoint,
const ROL::Ptr< ROL::Vector< Real >> &  dualstate,
const ROL::Ptr< ROL::Vector< Real >> &  dualcontrol,
const ROL::Ptr< ROL::Vector< Real >> &  dualadjoint,
const bool  storage = true,
const bool  useFDhessVec = false 
)
inline

Secondary, general constructor for use with dual optimization vector spaces where the user does not define the dual() method.

Parameters
[in]objis a pointer to a SimOpt objective function.
[in]conis a pointer to a SimOpt equality constraint.
[in]stateis a pointer to a state space vector, $\mathcal{U}$.
[in]controlis a pointer to a optimization space vector, $\mathcal{Z}$.
[in]adjointis a pointer to a dual constraint space vector, $\mathcal{C}^*$.
[in]dualstateis a pointer to a dual state space vector, $\mathcal{U}^*$.
[in]dualadjointis a pointer to a constraint space vector, $\mathcal{C}$.
[in]storageis a flag whether or not to store computed states and adjoints.
[in]useFDhessVecis a flag whether or not to use a finite-difference Hessian approximation.

◆ Reduced_Objective_SimOpt() [3/4]

template<class Real >
Piro::Reduced_Objective_SimOpt< Real >::Reduced_Objective_SimOpt ( const ROL::Ptr< ROL::Objective_SimOpt< Real >> &  obj,
const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &  con,
const ROL::Ptr< ROL::VectorController< Real >> &  stateStore,
const ROL::Ptr< ROL::Vector< Real >> &  state,
const ROL::Ptr< ROL::Vector< Real >> &  control,
const ROL::Ptr< ROL::Vector< Real >> &  adjoint,
const bool  storage = true,
const bool  useFDhessVec = false 
)
inline

Constructor.

Parameters
[in]objis a pointer to a SimOpt objective function.
[in]conis a pointer to a SimOpt equality constraint.
[in]stateStoreis a pointer to a VectorController object.
[in]stateis a pointer to a state space vector, $\mathcal{U}$.
[in]controlis a pointer to a optimization space vector, $\mathcal{Z}$.
[in]adjointis a pointer to a dual constraint space vector, $\mathcal{C}^*$.
[in]storageis a flag whether or not to store computed states and adjoints.
[in]useFDhessVecis a flag whether or not to use a finite-difference Hessian approximation.

◆ Reduced_Objective_SimOpt() [4/4]

template<class Real >
Piro::Reduced_Objective_SimOpt< Real >::Reduced_Objective_SimOpt ( const ROL::Ptr< ROL::Objective_SimOpt< Real >> &  obj,
const ROL::Ptr< ROL::Constraint_SimOpt< Real >> &  con,
const ROL::Ptr< ROL::VectorController< Real >> &  stateStore,
const ROL::Ptr< ROL::Vector< Real >> &  state,
const ROL::Ptr< ROL::Vector< Real >> &  control,
const ROL::Ptr< ROL::Vector< Real >> &  adjoint,
const ROL::Ptr< ROL::Vector< Real >> &  dualstate,
const ROL::Ptr< ROL::Vector< Real >> &  dualcontrol,
const ROL::Ptr< ROL::Vector< Real >> &  dualadjoint,
const bool  storage = true,
const bool  useFDhessVec = false 
)
inline

Secondary, general constructor for use with dual optimization vector spaces where the user does not define the dual() method.

Parameters
[in]objis a pointer to a SimOpt objective function.
[in]conis a pointer to a SimOpt equality constraint.
[in]stateStoreis a pointer to a VectorController object.
[in]stateis a pointer to a state space vector, $\mathcal{U}$.
[in]controlis a pointer to a optimization space vector, $\mathcal{Z}$.
[in]adjointis a pointer to a dual constraint space vector, $\mathcal{C}^*$.
[in]dualstateis a pointer to a dual state space vector, $\mathcal{U}^*$.
[in]dualadjointis a pointer to a constraint space vector, $\mathcal{C}$.
[in]storageis a flag whether or not to store computed states and adjoints.
[in]useFDhessVecis a flag whether or not to use a finite-difference Hessian approximation.

The documentation for this class was generated from the following file: