ROL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ROL::CompositeEqualityConstraint_SimOpt< Real > Class Template Reference

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

#include <ROL_CompositeEqualityConstraint_SimOpt.hpp>

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

Public Member Functions

 CompositeEqualityConstraint_SimOpt (const Teuchos::RCP< EqualityConstraint_SimOpt< Real > > &conVal, const Teuchos::RCP< EqualityConstraint_SimOpt< Real > > &conRed, const Vector< Real > &cVal, const Vector< Real > &cRed, const Vector< Real > &u, const Vector< Real > &Sz, const Vector< Real > &z)
 
void update (const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1)
 Update constraint functions.
x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
void update_1 (const Vector< Real > &u, bool flag=true, int iter=-1)
 Update constraint functions with respect to Sim variable.
x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
void update_2 (const Vector< Real > &z, bool flag=true, int iter=-1)
 Update constraint functions with respect to Opt variable. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
void value (Vector< Real > &c, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\). More...
 
void applyJacobian_1 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the partial constraint Jacobian at \((u,z)\), \(c_u(u,z) \in L(\mathcal{U}, \mathcal{C})\), to the vector \(v\). More...
 
void applyJacobian_2 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the partial constraint Jacobian at \((u,z)\), \(c_z(u,z) \in L(\mathcal{Z}, \mathcal{C})\), to the vector \(v\). More...
 
void applyInverseJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the inverse partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^{-1} \in L(\mathcal{C}, \mathcal{U})\), to the vector \(v\). More...
 
void applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^* \in L(\mathcal{C}^*, \mathcal{U}^*)\), to the vector \(v\). This is the primary interface. More...
 
void applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_z(u,z)^* \in L(\mathcal{C}^*, \mathcal{Z}^*)\), to vector \(v\). This is the primary interface. More...
 
void applyInverseAdjointJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the inverse of the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^{-*} \in L(\mathcal{U}^*, \mathcal{C}^*)\), to the vector \(v\). More...
 
void applyAdjointHessian_11 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the simulation-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{uu}(u,z)(v,\cdot)^*w\). More...
 
void applyAdjointHessian_12 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the optimization-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{uz}(u,z)(v,\cdot)^*w\). More...
 
void applyAdjointHessian_21 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the simulation-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{zu}(u,z)(v,\cdot)^*w\). More...
 
void applyAdjointHessian_22 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Apply the optimization-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{zz}(u,z)(v,\cdot)^*w\). More...
 
void setParameter (const std::vector< Real > &param)
 
- Public Member Functions inherited from ROL::EqualityConstraint_SimOpt< Real >
 EqualityConstraint_SimOpt ()
 
virtual void solve (Vector< Real > &c, Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Given \(z\), solve \(c(u,z)=0\) for \(u\). More...
 
virtual void setSolveParameters (Teuchos::ParameterList &parlist)
 Set solve parameters. More...
 
virtual void applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualv, Real &tol)
 Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^* \in L(\mathcal{C}^*, \mathcal{U}^*)\), to the vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual void applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualv, Real &tol)
 Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_z(u,z)^* \in L(\mathcal{C}^*, \mathcal{Z}^*)\), to vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual std::vector< Real > solveAugmentedSystem (Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol)
 Approximately solves the augmented system

\[ \begin{pmatrix} I & c'(x)^* \\ c'(x) & 0 \end{pmatrix} \begin{pmatrix} v_{1} \\ v_{2} \end{pmatrix} = \begin{pmatrix} b_{1} \\ b_{2} \end{pmatrix} \]

where \(v_{1} \in \mathcal{X}\), \(v_{2} \in \mathcal{C}^*\), \(b_{1} \in \mathcal{X}^*\), \(b_{2} \in \mathcal{C}\), \(I : \mathcal{X} \rightarrow \mathcal{X}^*\) is an identity operator, and \(0 : \mathcal{C}^* \rightarrow \mathcal{C}\) is a zero operator. More...

 
virtual void applyPreconditioner (Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol)
 Apply a constraint preconditioner at \(x\), \(P(x) \in L(\mathcal{C}, \mathcal{C})\), to vector \(v\). In general, this preconditioner satisfies the following relationship:

\[ c'(x) c'(x)^* P(x) v \approx v \,. \]

It is used by the solveAugmentedSystem method. More...

 
virtual void update (const Vector< Real > &x, bool flag=true, int iter=-1)
 Update constraint functions.
x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
virtual bool isFeasible (const Vector< Real > &v)
 Check if the vector, v, is feasible. More...
 
virtual void value (Vector< Real > &c, const Vector< Real > &x, Real &tol)
 Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\). More...
 
virtual void applyJacobian (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\). More...
 
virtual void applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\). More...
 
virtual void applyAdjointHessian (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the derivative of the adjoint of the constraint Jacobian at \(x\) to vector \(u\) in direction \(v\), according to \( v \mapsto c''(x)(v,\cdot)^*u \). More...
 
virtual Real checkSolve (const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, const ROL::Vector< Real > &c, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual Real checkAdjointConsistencyJacobian_1 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the primary interface. More...
 
virtual Real checkAdjointConsistencyJacobian_1 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual Real checkAdjointConsistencyJacobian_2 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the primary interface. More...
 
virtual Real checkAdjointConsistencyJacobian_2 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual Real checkInverseJacobian_1 (const Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual Real checkInverseAdjointJacobian_1 (const Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 
std::vector< std::vector< Real > > checkApplyJacobian_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyJacobian_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyJacobian_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyJacobian_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
- Public Member Functions inherited from ROL::EqualityConstraint< Real >
virtual ~EqualityConstraint ()
 
virtual void applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &dualv, Real &tol)
 Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\). More...
 
 EqualityConstraint (void)
 
void activate (void)
 Turn on constraints. More...
 
void deactivate (void)
 Turn off constraints. More...
 
bool isActivated (void)
 Check if constraints are on. More...
 
virtual std::vector< std::vector< Real > > checkApplyJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference check for the constraint Jacobian application. More...
 
virtual std::vector< std::vector< Real > > checkApplyJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference check for the constraint Jacobian application. More...
 
virtual std::vector< std::vector< Real > > checkApplyAdjointJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &c, const Vector< Real > &ajv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS)
 Finite-difference check for the application of the adjoint of constraint Jacobian. More...
 
virtual Real checkAdjointConsistencyJacobian (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual Real checkAdjointConsistencyJacobian (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual std::vector< std::vector< Real > > checkApplyAdjointHessian (const Vector< Real > &x, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &step, const bool printToScreen=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference check for the application of the adjoint of constraint Hessian. More...
 
virtual std::vector< std::vector< Real > > checkApplyAdjointHessian (const Vector< Real > &x, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &hv, const bool printToScreen=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference check for the application of the adjoint of constraint Hessian. More...
 

Private Member Functions

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

Private Attributes

const Teuchos::RCP< EqualityConstraint_SimOpt< Real > > conVal_
 
const Teuchos::RCP< EqualityConstraint_SimOpt< Real > > conRed_
 
Teuchos::RCP< Vector< Real > > Sz_
 
Teuchos::RCP< Vector< Real > > primRed_
 
Teuchos::RCP< Vector< Real > > dualRed_
 
Teuchos::RCP< Vector< Real > > primZ_
 
Teuchos::RCP< Vector< Real > > dualZ_
 
Teuchos::RCP< Vector< Real > > dualZ1_
 
bool isSolved_
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::EqualityConstraint< Real >
const std::vector< Real > getParameter (void) const
 

Detailed Description

template<class Real>
class ROL::CompositeEqualityConstraint_SimOpt< Real >

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

This equality constraint interface inherits from ROL_EqualityConstraint_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_CompositeEqualityConstraint_SimOpt.hpp.

Constructor & Destructor Documentation

◆ CompositeEqualityConstraint_SimOpt()

template<class Real>
ROL::CompositeEqualityConstraint_SimOpt< Real >::CompositeEqualityConstraint_SimOpt ( const Teuchos::RCP< EqualityConstraint_SimOpt< Real > > &  conVal,
const Teuchos::RCP< EqualityConstraint_SimOpt< Real > > &  conRed,
const Vector< Real > &  cVal,
const Vector< Real > &  cRed,
const Vector< Real > &  u,
const Vector< Real > &  Sz,
const Vector< Real > &  z 
)
inline

Member Function Documentation

◆ solveConRed()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed ( const Vector< Real > &  z,
Real &  tol 
)
inlineprivate

◆ applySens()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applySens ( Vector< Real > &  jv,
const Vector< Real > &  v,
const Vector< Real > &  z,
Real &  tol 
)
inlineprivate

◆ applyAdjointSens()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applyAdjointSens ( Vector< Real > &  ajv,
const Vector< Real > &  v,
const Vector< Real > &  z,
Real &  tol 
)
inlineprivate

◆ update()

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

◆ update_1()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::update_1 ( const Vector< Real > &  u,
bool  flag = true,
int  iter = -1 
)
inlinevirtual

Update constraint functions with respect to Sim variable.
x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count.

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 134 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_.

Referenced by ROL::CompositeEqualityConstraint_SimOpt< Real >::update().

◆ update_2()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::update_2 ( const Vector< Real > &  z,
bool  flag = true,
int  iter = -1 
)
inlinevirtual

Update constraint functions with respect to Opt variable. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count.

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 138 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conRed_.

Referenced by ROL::CompositeEqualityConstraint_SimOpt< Real >::update().

◆ value()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::value ( Vector< Real > &  c,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\).

Parameters
[out]cis the result of evaluating the constraint operator at \((u,z)\); a constraint-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#120,
   where \form#85, \form#121, and $ \form#122.

   ---

Implements ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 142 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed(), and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyJacobian_1()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applyJacobian_1 ( Vector< Real > &  jv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the partial constraint Jacobian at \((u,z)\), \(c_u(u,z) \in L(\mathcal{U}, \mathcal{C})\), to the vector \(v\).

Parameters
[out]jvis the result of applying the constraint Jacobian to v at \((u,z)\); a constraint-space vector
[in]vis a simulation-space vector
[in]uis the constraint argument; an simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#126, where
\(v \in \mathcal{U}\), \(\mathsf{jv} \in \mathcal{C}\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 147 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed(), and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyJacobian_2()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applyJacobian_2 ( Vector< Real > &  jv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the partial constraint Jacobian at \((u,z)\), \(c_z(u,z) \in L(\mathcal{Z}, \mathcal{C})\), to the vector \(v\).

Parameters
[out]jvis the result of applying the constraint Jacobian to v at \((u,z)\); a constraint-space vector
[in]vis an optimization-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#129, where
\(v \in \mathcal{Z}\), \(\mathsf{jv} \in \mathcal{C}\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 153 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::applySens(), ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::primZ_, and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyInverseJacobian_1()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applyInverseJacobian_1 ( Vector< Real > &  ijv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the inverse partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^{-1} \in L(\mathcal{C}, \mathcal{U})\), to the vector \(v\).

Parameters
[out]ijvis the result of applying the inverse constraint Jacobian to v at \((u,z)\); a simulation-space vector
[in]vis a constraint-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#132, where
\(v \in \mathcal{C}\), \(\mathsf{ijv} \in \mathcal{U}\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 159 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed(), and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyAdjointJacobian_1()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applyAdjointJacobian_1 ( Vector< Real > &  ajv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^* \in L(\mathcal{C}^*, \mathcal{U}^*)\), to the vector \(v\). This is the primary interface.

Parameters
[out]ajvis the result of applying the adjoint of the constraint Jacobian to v at (u,z); a dual simulation-space vector
[in]vis a dual constraint-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#135, where
\(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{U}^*\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 165 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed(), and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyAdjointJacobian_2()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applyAdjointJacobian_2 ( Vector< Real > &  ajv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_z(u,z)^* \in L(\mathcal{C}^*, \mathcal{Z}^*)\), to vector \(v\). This is the primary interface.

Parameters
[out]ajvis the result of applying the adjoint of the constraint Jacobian to v at \((u,z)\); a dual optimization-space vector
[in]vis a dual constraint-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#138, where
\(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{Z}^*\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 171 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::applyAdjointSens(), ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::dualZ_, ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed(), and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyInverseAdjointJacobian_1()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::applyInverseAdjointJacobian_1 ( Vector< Real > &  iajv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the inverse of the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^{-*} \in L(\mathcal{U}^*, \mathcal{C}^*)\), to the vector \(v\).

Parameters
[out]iajvis the result of applying the inverse adjoint of the constraint Jacobian to v at (u,z); a dual constraint-space vector
[in]vis a dual simulation-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#141, where
\(v \in \mathcal{U}^*\), \(\mathsf{iajv} \in \mathcal{C}^*\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 178 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed(), and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyAdjointHessian_11()

template<class Real>
void ROL::CompositeEqualityConstraint_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 
)
inlinevirtual

Apply the simulation-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{uu}(u,z)(v,\cdot)^*w\).

Parameters
[out]ahwvis the result of applying the simulation-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in direction \(w\); a dual simulation-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a simulation-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#146, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{U}\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 184 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, and ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed().

◆ applyAdjointHessian_12()

template<class Real>
void ROL::CompositeEqualityConstraint_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 
)
inlinevirtual

Apply the optimization-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{uz}(u,z)(v,\cdot)^*w\).

Parameters
[out]ahwvis the result of applying the optimization-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in direction \(w\); a dual optimization-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a simulation-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#150, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{U}\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 190 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::applyAdjointSens(), ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::dualZ_, ROL::CompositeEqualityConstraint_SimOpt< Real >::solveConRed(), and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyAdjointHessian_21()

template<class Real>
void ROL::CompositeEqualityConstraint_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 
)
inlinevirtual

Apply the simulation-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{zu}(u,z)(v,\cdot)^*w\).

Parameters
[out]ahwvis the result of applying the simulation-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in direction \(w\); a dual simulation-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a optimization-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#153, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 197 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::applySens(), ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::primZ_, and ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_.

◆ applyAdjointHessian_22()

template<class Real>
void ROL::CompositeEqualityConstraint_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 
)
inlinevirtual

Apply the optimization-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{zz}(u,z)(v,\cdot)^*w\).

Parameters
[out]ahwvis the result of applying the optimization-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in direction \(w\); a dual optimization-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a optimization-space vector
[in]uis the constraint argument; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused
   On return, \form#155, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 203 of file ROL_CompositeEqualityConstraint_SimOpt.hpp.

References ROL::CompositeEqualityConstraint_SimOpt< Real >::applyAdjointSens(), ROL::CompositeEqualityConstraint_SimOpt< Real >::applySens(), ROL::Vector< Real >::axpy(), ROL::CompositeEqualityConstraint_SimOpt< Real >::conRed_, ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_, ROL::CompositeEqualityConstraint_SimOpt< Real >::dualRed_, ROL::CompositeEqualityConstraint_SimOpt< Real >::dualZ1_, ROL::CompositeEqualityConstraint_SimOpt< Real >::dualZ_, ROL::Vector< Real >::plus(), ROL::CompositeEqualityConstraint_SimOpt< Real >::primZ_, ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_, and ROL::Vector< Real >::zero().

◆ setParameter()

template<class Real>
void ROL::CompositeEqualityConstraint_SimOpt< Real >::setParameter ( const std::vector< Real > &  param)
inlinevirtual

Member Data Documentation

◆ conVal_

template<class Real>
const Teuchos::RCP<EqualityConstraint_SimOpt<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::conVal_
private

◆ conRed_

template<class Real>
const Teuchos::RCP<EqualityConstraint_SimOpt<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::conRed_
private

◆ Sz_

template<class Real>
Teuchos::RCP<Vector<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::Sz_
private

◆ primRed_

template<class Real>
Teuchos::RCP<Vector<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::primRed_
private

◆ dualRed_

template<class Real>
Teuchos::RCP<Vector<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::dualRed_
private

◆ primZ_

template<class Real>
Teuchos::RCP<Vector<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::primZ_
private

◆ dualZ_

template<class Real>
Teuchos::RCP<Vector<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::dualZ_
private

◆ dualZ1_

template<class Real>
Teuchos::RCP<Vector<Real> > ROL::CompositeEqualityConstraint_SimOpt< Real >::dualZ1_
private

◆ isSolved_

template<class Real>
bool ROL::CompositeEqualityConstraint_SimOpt< Real >::isSolved_
private

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