ROL
ROL::CompositeConstraint_SimOpt< Real > Class Template Reference

Defines a composite equality constraint operator interface for simulation-based optimization. More...

#include <ROL_CompositeConstraint_SimOpt.hpp>

+ Inheritance diagram for ROL::CompositeConstraint_SimOpt< Real >:

Public Member Functions

 CompositeConstraint_SimOpt (const ROL::Ptr< Constraint_SimOpt< Real > > &conVal, const ROL::Ptr< Constraint_SimOpt< Real > > &conRed, const Vector< Real > &cVal, const Vector< Real > &cRed, const Vector< Real > &u, const Vector< Real > &Sz, const Vector< Real > &z, bool storage=true, bool isConRedParametrized=false)
 
void update (const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) override
 
void update_1 (const Vector< Real > &u, bool flag=true, int iter=-1) override
 
void update_2 (const Vector< Real > &z, bool flag=true, int iter=-1) override
 
void update (const Vector< Real > &u, const Vector< Real > &z, UpdateType type, int iter=-1) override
 
void update_1 (const Vector< Real > &u, UpdateType type, int iter=-1) override
 
void update_2 (const Vector< Real > &z, UpdateType type, int iter=-1) override
 
void solve_update (const Vector< Real > &u, const Vector< Real > &z, UpdateType type, int iter=-1) override
 
void value (Vector< Real > &c, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void solve (Vector< Real > &c, Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyJacobian_1 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyJacobian_2 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyInverseJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyInverseAdjointJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyAdjointHessian_11 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyAdjointHessian_12 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyAdjointHessian_21 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void applyAdjointHessian_22 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 
void setParameter (const std::vector< Real > &param) override
 

Private Member Functions

void solveConRed (Vector< Real > &Sz, const Vector< Real > &z, Real &tol)
 
void applySens (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &Sz, const Vector< Real > &z, Real &tol)
 
void applyAdjointSens (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &Sz, const Vector< Real > &z, Real &tol)
 

Private Attributes

const ROL::Ptr< Constraint_SimOpt< Real > > conVal_
 
const ROL::Ptr< Constraint_SimOpt< Real > > conRed_
 
ROL::Ptr< Vector< Real > > Sz_
 
ROL::Ptr< Vector< Real > > primRed_
 
ROL::Ptr< Vector< Real > > dualRed_
 
ROL::Ptr< Vector< Real > > primZ_
 
ROL::Ptr< Vector< Real > > dualZ_
 
ROL::Ptr< Vector< Real > > dualZ1_
 
ROL::Ptr< Vector< Real > > primU_
 
ROL::Ptr< VectorController< Real > > stateStore_
 
bool updateFlag_
 
bool newUpdate_
 
int updateIter_
 
UpdateType updateType_
 
const bool storage_
 
const bool isConRedParametrized_
 

Detailed Description

template<typename Real>
class ROL::CompositeConstraint_SimOpt< Real >

Defines a composite equality constraint operator interface for simulation-based optimization.

This equality constraint interface inherits from ROL_Constraint_SimOpt, for the use case when \(\mathcal{X}=\mathcal{U}\times\mathcal{Z}\) where \(\mathcal{U}\) and \(\mathcal{Z}\) are Banach spaces. \(\mathcal{U}\) denotes the "simulation space" and \(\mathcal{Z}\) denotes the "optimization space" (of designs, controls, parameters). The simulation-based constraints are of the form

\[ c(u,S(z)) = 0 \]

where \(S(z)\) solves the reducible constraint

\[ c_0(S(z),z) = 0. \]


Definition at line 74 of file ROL_CompositeConstraint_SimOpt.hpp.

Constructor & Destructor Documentation

◆ CompositeConstraint_SimOpt()

template<typename Real>
ROL::CompositeConstraint_SimOpt< Real >::CompositeConstraint_SimOpt ( const ROL::Ptr< Constraint_SimOpt< Real > > & conVal,
const ROL::Ptr< Constraint_SimOpt< Real > > & conRed,
const Vector< Real > & cVal,
const Vector< Real > & cRed,
const Vector< Real > & u,
const Vector< Real > & Sz,
const Vector< Real > & z,
bool storage = true,
bool isConRedParametrized = false )

Member Function Documentation

◆ update() [1/2]

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::update ( const Vector< Real > & u,
const Vector< Real > & z,
bool flag = true,
int iter = -1 )
override

Definition at line 74 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References update_1(), and ROL::update_2().

◆ update_1() [1/2]

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::update_1 ( const Vector< Real > & u,
bool flag = true,
int iter = -1 )
override

Definition at line 82 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, and primU_.

Referenced by update(), and update().

◆ update_2() [1/2]

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::update_2 ( const Vector< Real > & z,
bool flag = true,
int iter = -1 )
override

Definition at line 89 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conRed_, stateStore_, updateFlag_, and updateIter_.

◆ update() [2/2]

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::update ( const Vector< Real > & u,
const Vector< Real > & z,
UpdateType type,
int iter = -1 )
override

Definition at line 98 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References update_1(), and ROL::update_2().

◆ update_1() [2/2]

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::update_1 ( const Vector< Real > & u,
UpdateType type,
int iter = -1 )
override

Definition at line 106 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, and primU_.

◆ update_2() [2/2]

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::update_2 ( const Vector< Real > & z,
UpdateType type,
int iter = -1 )
override

Definition at line 113 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conRed_, stateStore_, updateIter_, and updateType_.

◆ solve_update()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::solve_update ( const Vector< Real > & u,
const Vector< Real > & z,
UpdateType type,
int iter = -1 )
override

◆ value()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::value ( Vector< Real > & c,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 131 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, solveConRed(), and Sz_.

◆ solve()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::solve ( Vector< Real > & c,
Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 140 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, solveConRed(), and Sz_.

◆ applyJacobian_1()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyJacobian_1 ( Vector< Real > & jv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 149 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, solveConRed(), and Sz_.

◆ applyJacobian_2()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyJacobian_2 ( Vector< Real > & jv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 159 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References applySens(), conVal_, primZ_, solveConRed(), and Sz_.

◆ applyInverseJacobian_1()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyInverseJacobian_1 ( Vector< Real > & ijv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 170 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, solveConRed(), and Sz_.

◆ applyAdjointJacobian_1()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyAdjointJacobian_1 ( Vector< Real > & ajv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 180 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, solveConRed(), and Sz_.

◆ applyAdjointJacobian_2()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyAdjointJacobian_2 ( Vector< Real > & ajv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

◆ applyInverseAdjointJacobian_1()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyInverseAdjointJacobian_1 ( Vector< Real > & ijv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 201 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, solveConRed(), and Sz_.

◆ applyAdjointHessian_11()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyAdjointHessian_11 ( Vector< Real > & ahwv,
const Vector< Real > & w,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 211 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References conVal_, solveConRed(), and Sz_.

◆ applyAdjointHessian_12()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyAdjointHessian_12 ( Vector< Real > & ahwv,
const Vector< Real > & w,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

◆ applyAdjointHessian_21()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyAdjointHessian_21 ( Vector< Real > & ahwv,
const Vector< Real > & w,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

Definition at line 234 of file ROL_CompositeConstraint_SimOpt_Def.hpp.

References applySens(), conVal_, primZ_, solveConRed(), and Sz_.

◆ applyAdjointHessian_22()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyAdjointHessian_22 ( Vector< Real > & ahwv,
const Vector< Real > & w,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
override

◆ setParameter()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::setParameter ( const std::vector< Real > & param)
override

◆ solveConRed()

◆ applySens()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applySens ( Vector< Real > & jv,
const Vector< Real > & v,
const Vector< Real > & Sz,
const Vector< Real > & z,
Real & tol )
private

◆ applyAdjointSens()

template<typename Real>
void ROL::CompositeConstraint_SimOpt< Real >::applyAdjointSens ( Vector< Real > & ajv,
const Vector< Real > & v,
const Vector< Real > & Sz,
const Vector< Real > & z,
Real & tol )
private

Member Data Documentation

◆ conVal_

◆ conRed_

◆ Sz_

◆ primRed_

template<typename Real>
ROL::Ptr<Vector<Real> > ROL::CompositeConstraint_SimOpt< Real >::primRed_
private

◆ dualRed_

template<typename Real>
ROL::Ptr<Vector<Real> > ROL::CompositeConstraint_SimOpt< Real >::dualRed_
private

◆ primZ_

template<typename Real>
ROL::Ptr<Vector<Real> > ROL::CompositeConstraint_SimOpt< Real >::primZ_
private

◆ dualZ_

template<typename Real>
ROL::Ptr<Vector<Real> > ROL::CompositeConstraint_SimOpt< Real >::dualZ_
private

◆ dualZ1_

template<typename Real>
ROL::Ptr<Vector<Real> > ROL::CompositeConstraint_SimOpt< Real >::dualZ1_
private

◆ primU_

template<typename Real>
ROL::Ptr<Vector<Real> > ROL::CompositeConstraint_SimOpt< Real >::primU_
private

◆ stateStore_

template<typename Real>
ROL::Ptr<VectorController<Real> > ROL::CompositeConstraint_SimOpt< Real >::stateStore_
private

◆ updateFlag_

template<typename Real>
bool ROL::CompositeConstraint_SimOpt< Real >::updateFlag_
private

◆ newUpdate_

template<typename Real>
bool ROL::CompositeConstraint_SimOpt< Real >::newUpdate_
private

Definition at line 83 of file ROL_CompositeConstraint_SimOpt.hpp.

Referenced by CompositeConstraint_SimOpt(), and solveConRed().

◆ updateIter_

template<typename Real>
int ROL::CompositeConstraint_SimOpt< Real >::updateIter_
private

◆ updateType_

template<typename Real>
UpdateType ROL::CompositeConstraint_SimOpt< Real >::updateType_
private

◆ storage_

template<typename Real>
const bool ROL::CompositeConstraint_SimOpt< Real >::storage_
private

Definition at line 87 of file ROL_CompositeConstraint_SimOpt.hpp.

Referenced by CompositeConstraint_SimOpt(), and solveConRed().

◆ isConRedParametrized_

template<typename Real>
const bool ROL::CompositeConstraint_SimOpt< Real >::isConRedParametrized_
private

Definition at line 87 of file ROL_CompositeConstraint_SimOpt.hpp.

Referenced by CompositeConstraint_SimOpt(), and setParameter().


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