ROL
ROL::Constraint_SimOpt< Real > Class Template Referenceabstract

Defines the constraint operator interface for simulation-based optimization. More...

#include <ROL_Constraint_SimOpt.hpp>

Inheritance diagram for ROL::Constraint_SimOpt< Real >:

Public Member Functions

 Constraint_SimOpt ()
virtual 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.
virtual void update (const Vector< Real > &u, const Vector< Real > &z, UpdateType type, int iter=-1)
virtual 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.
virtual void update_1 (const Vector< Real > &u, UpdateType type, int iter=-1)
virtual 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.
virtual void update_2 (const Vector< Real > &z, UpdateType type, int iter=-1)
virtual void solve_update (const Vector< Real > &u, const Vector< Real > &z, UpdateType type, int iter=-1)
 Update SimOpt constraint during solve (disconnected from optimization updates).
virtual void value (Vector< Real > &c, const Vector< Real > &u, const Vector< Real > &z, Real &tol)=0
 Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\).
virtual void solve (Vector< Real > &c, Vector< Real > &u, const Vector< Real > &z, Real &tol)
 Given \(z\), solve \(c(u,z)=0\) for \(u\).
virtual void setSolveParameters (ParameterList &parlist)
 Set solve parameters.
virtual 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\).
virtual 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\).
virtual 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\).
virtual 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.
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.
virtual 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.
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.
virtual void applyInverseAdjointJacobian_1 (Vector< Real > &iajv, 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\).
virtual 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\).
virtual 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\).
virtual 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\).
virtual 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\).
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 .
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:
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.
virtual void update (const Vector< Real > &x, UpdateType type, int iter=-1)
virtual void value (Vector< Real > &c, const Vector< Real > &x, Real &tol)
virtual void applyJacobian (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
virtual void applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
virtual void applyAdjointHessian (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
virtual Real checkSolve (const Vector< Real > &u, const Vector< Real > &z, const 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.
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.
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.
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.
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)
 \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \)
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)
 \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \)
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)
 \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \)
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::ROL::Constraint< Real >
virtual ~Constraint (void)
 Constraint (void)
virtual void update (const Vector< Real > &x, UpdateType type, int iter=-1)
 Update constraint function.
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.
virtual void value (Vector< Real > &c, const Vector< Real > &x, Real &tol)=0
 Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\).
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\).
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\).
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\).
virtual void applyAdjointHessian (Vector< Real > &ahuv, const Vector< Real > &u, 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 \).
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 .
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\). Ideally, this preconditioner satisfies the following relationship:
void activate (void)
 Turn on constraints.
void deactivate (void)
 Turn off constraints.
bool isActivated (void)
 Check if constraints are on.
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.
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.
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.
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.
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.
virtual void setParameter (const std::vector< Real > &param)

Protected Attributes

Real atol_
Real rtol_
Real stol_
Real factor_
Real decr_
int maxit_
bool print_
bool zero_
int solverType_
bool firstSolve_

Private Attributes

Ptr< Vector< Real > > unew_
Ptr< Vector< Real > > jv_
const Real DEFAULT_atol_
const Real DEFAULT_rtol_
const Real DEFAULT_stol_
const Real DEFAULT_factor_
const Real DEFAULT_decr_
const int DEFAULT_maxit_
const bool DEFAULT_print_
const bool DEFAULT_zero_
const int DEFAULT_solverType_

Additional Inherited Members

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

Detailed Description

template<class Real>
class ROL::Constraint_SimOpt< Real >

Defines the constraint operator interface for simulation-based optimization.

This constraint interface inherits from ROL_Constraint, 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,z) = 0 \,. \]

The basic operator interface, to be implemented by the user, requires:

  • value – constraint evaluation.
  • applyJacobian_1 – action of the partial constraint Jacobian –derivatives are with respect to the first component \(\mathcal{U}\);
  • applyJacobian_2 – action of the partial constraint Jacobian –derivatives are with respect to the second component \(\mathcal{Z}\);
  • applyAdjointJacobian_1 – action of the adjoint of the partial constraint Jacobian –derivatives are with respect to the first component \(\mathcal{U}\);
  • applyAdjointJacobian_2 – action of the adjoint of the partial constraint Jacobian –derivatives are with respect to the second component \(\mathcal{Z}\);

The user may also overload:

  • applyAdjointHessian_11 – action of the adjoint of the partial constraint Hessian –derivatives are with respect to the first component only;
  • applyAdjointHessian_12 – action of the adjoint of the partial constraint Hessian –derivatives are with respect to the first and second components;
  • applyAdjointHessian_21 – action of the adjoint of the partial constraint Hessian –derivatives are with respect to the second and first components;
  • applyAdjointHessian_22 – action of the adjoint of the partial constraint Hessian –derivatives are with respect to the second component only;
  • solveAugmentedSystem – solution of the augmented system –the default is an iterative scheme based on the action of the Jacobian and its adjoint.
  • applyPreconditioner – action of a constraint preconditioner –the default is null-op.

Definition at line 74 of file ROL_Constraint_SimOpt.hpp.

Constructor & Destructor Documentation

◆ Constraint_SimOpt()

Member Function Documentation

◆ update() [1/4]

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

◆ update() [2/4]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::update ( const Vector< Real > & u,
const Vector< Real > & z,
UpdateType type,
int iter = -1 )
inlinevirtual

Definition at line 133 of file ROL_Constraint_SimOpt.hpp.

References update_1(), and update_2().

◆ update_1() [1/2]

template<class Real>
virtual void ROL::Constraint_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.

Definition at line 143 of file ROL_Constraint_SimOpt.hpp.

Referenced by update(), and update().

◆ update_1() [2/2]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::update_1 ( const Vector< Real > & u,
UpdateType type,
int iter = -1 )
inlinevirtual

Definition at line 144 of file ROL_Constraint_SimOpt.hpp.

◆ update_2() [1/2]

template<class Real>
virtual void ROL::Constraint_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.

Definition at line 151 of file ROL_Constraint_SimOpt.hpp.

Referenced by update(), and update().

◆ update_2() [2/2]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::update_2 ( const Vector< Real > & z,
UpdateType type,
int iter = -1 )
inlinevirtual

Definition at line 152 of file ROL_Constraint_SimOpt.hpp.

◆ solve_update()

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::solve_update ( const Vector< Real > & u,
const Vector< Real > & z,
UpdateType type,
int iter = -1 )
inlinevirtual

Update SimOpt constraint during solve (disconnected from optimization updates).

     @param[in]    x is the optimization variable
     @param[in] type is the update type
     @param[in] iter is the solver iteration count

Definition at line 160 of file ROL_Constraint_SimOpt.hpp.

Referenced by solve().

◆ value() [1/2]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::value ( Vector< Real > & c,
const Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
pure virtual

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, \(\mathsf{c} = c(u,z)\), where \(\mathsf{c} \in \mathcal{C}\), \(\mathsf{u} \in \mathcal{U}\), and $ \(\mathsf{z} \in\mathcal{Z}\).


Implemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Referenced by applyAdjointJacobian_1(), applyAdjointJacobian_2(), applyJacobian_1(), applyJacobian_2(), checkApplyJacobian_1(), checkApplyJacobian_2(), checkSolve(), solve(), and value().

◆ solve()

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::solve ( Vector< Real > & c,
Vector< Real > & u,
const Vector< Real > & z,
Real & tol )
inlinevirtual

Given \(z\), solve \(c(u,z)=0\) for \(u\).

  @param[out]      c   is the result of evaluating the constraint operator at @b \f$(u,z)\f$; a constraint-space vector
  @param[in,out]   u   is the solution vector; a simulation-space vector
  @param[in]       z   is the constraint argument; an optimization-space vector
  @param[in,out]   tol is a tolerance for inexact evaluations; currently unused

  The defualt implementation is Newton's method globalized with a backtracking line search.

  ---

Reimplemented in constraint1< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, and DiffusionConstraint< Real >.

Definition at line 191 of file ROL_Constraint_SimOpt.hpp.

References ROL::Accept, applyInverseJacobian_1(), atol_, ROL::Vector< Real >::clone(), decr_, ROL::Vector< Real >::dual(), factor_, firstSolve_, ROL::Initial, jv_, ROL::makeStreamPtr(), maxit_, ROL::Vector< Real >::norm(), print_, rtol_, ROL::Vector< Real >::set(), solve_update(), solverType_, stol_, ROL::Trial, unew_, value(), ROL::Vector< Real >::zero(), and zero_.

Referenced by checkSolve(), and Constraint_BurgersControl< Real >::solve().

◆ setSolveParameters()

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::setSolveParameters ( ParameterList & parlist)
inlinevirtual

Set solve parameters.

  @param[in]       parlist   ParameterList containing solve parameters

  For the default implementation, parlist has two sublist ("SimOpt"
  and "Solve") and the "Solve" sublist has six input parameters.

     - "Residual Tolerance": Absolute tolerance for the norm of the residual (Real)
     - "Iteration Limit": Maximum number of Newton iterations (int)
     - "Sufficient Decrease Tolerance": Tolerance signifying sufficient decrease in the residual norm, between 0 and 1 (Real)
     - "Step Tolerance": Absolute tolerance for the step size parameter (Real)
     - "Backtracking Factor": Rate for decreasing step size during backtracking, between 0 and 1 (Real)
     - "Output Iteration History": Set to true in order to print solve iteration history (bool)
     - "Zero Initial Guess": Use a vector of zeros as an initial guess for the solve (bool)
     - "Solver Type": Determine which solver to use (0: Newton with line search, 1: Levenberg-Marquardt, 2: SQP) (int)

  These parameters are accessed as parlist.sublist("SimOpt").sublist("Solve").get(...).

  ---

Definition at line 303 of file ROL_Constraint_SimOpt.hpp.

References atol_, decr_, DEFAULT_atol_, DEFAULT_decr_, DEFAULT_factor_, DEFAULT_maxit_, DEFAULT_print_, DEFAULT_rtol_, DEFAULT_solverType_, DEFAULT_stol_, DEFAULT_zero_, factor_, maxit_, print_, rtol_, solverType_, stol_, and zero_.

Referenced by main().

◆ applyJacobian_1()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{jv} = c_u(u,z)v\), where \(v \in \mathcal{U}\), \(\mathsf{jv} \in \mathcal{C}\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 331 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Vector< Real >::scale(), ROL::Temp, update(), and value().

Referenced by applyJacobian(), checkAdjointConsistencyJacobian_1(), checkApplyJacobian_1(), and checkInverseJacobian_1().

◆ applyJacobian_2()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{jv} = c_z(u,z)v\), where \(v \in \mathcal{Z}\), \(\mathsf{jv} \in \mathcal{C}\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 374 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Vector< Real >::scale(), ROL::Temp, update(), and value().

Referenced by applyJacobian(), checkAdjointConsistencyJacobian_2(), and checkApplyJacobian_2().

◆ applyInverseJacobian_1()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{ijv} = c_u(u,z)^{-1}v\), where \(v \in \mathcal{C}\), \(\mathsf{ijv} \in \mathcal{U}\).


Reimplemented in constraint1< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, and redConstraint< Real >.

Definition at line 416 of file ROL_Constraint_SimOpt.hpp.

Referenced by applyPreconditioner(), checkInverseJacobian_1(), and solve().

◆ applyAdjointJacobian_1() [1/2]

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{ajv} = c_u(u,z)^*v\), where \(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{U}^*\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 440 of file ROL_Constraint_SimOpt.hpp.

References applyAdjointJacobian_1(), and ROL::Vector< Real >::dual().

Referenced by applyAdjointHessian_11(), applyAdjointHessian_21(), applyAdjointJacobian(), applyAdjointJacobian_1(), checkAdjointConsistencyJacobian_1(), checkApplyAdjointHessian_11(), checkApplyAdjointHessian_21(), and checkInverseAdjointJacobian_1().

◆ applyAdjointJacobian_1() [2/2]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::applyAdjointJacobian_1 ( Vector< Real > & ajv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
const Vector< Real > & dualv,
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 secondary interface, for use with dual spaces where the user does not define the dual() operation.

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]dualvis a vector used for temporary variables; a constraint-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

On return, \(\mathsf{ajv} = c_u(u,z)^*v\), where \(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{U}^*\).


Definition at line 466 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::basis(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::dimension(), ROL::Vector< Real >::dual(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Temp, update(), value(), and ROL::Vector< Real >::zero().

◆ applyAdjointJacobian_2() [1/2]

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{ajv} = c_z(u,z)^*v\), where \(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{Z}^*\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 511 of file ROL_Constraint_SimOpt.hpp.

References applyAdjointJacobian_2(), and ROL::Vector< Real >::dual().

Referenced by applyAdjointHessian_12(), applyAdjointHessian_22(), applyAdjointJacobian(), applyAdjointJacobian_2(), checkAdjointConsistencyJacobian_2(), checkApplyAdjointHessian_12(), and checkApplyAdjointHessian_22().

◆ applyAdjointJacobian_2() [2/2]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::applyAdjointJacobian_2 ( Vector< Real > & ajv,
const Vector< Real > & v,
const Vector< Real > & u,
const Vector< Real > & z,
const Vector< Real > & dualv,
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 secondary interface, for use with dual spaces where the user does not define the dual() operation.

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]dualvis a vector used for temporary variables; a constraint-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

On return, \(\mathsf{ajv} = c_z(u,z)^*v\), where \(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{Z}^*\).


Definition at line 537 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::basis(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::dimension(), ROL::Vector< Real >::dual(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Temp, update(), value(), and ROL::Vector< Real >::zero().

◆ applyInverseAdjointJacobian_1()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{iajv} = c_u(u,z)^{-*}v\), where \(v \in \mathcal{U}^*\), \(\mathsf{iajv} \in \mathcal{C}^*\).


Reimplemented in constraint1< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, and redConstraint< Real >.

Definition at line 581 of file ROL_Constraint_SimOpt.hpp.

Referenced by applyPreconditioner(), and checkInverseAdjointJacobian_1().

◆ applyAdjointHessian_11()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{ahwv} = c_{uu}(u,z)(v,\cdot)^*w\), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 607 of file ROL_Constraint_SimOpt.hpp.

References applyAdjointJacobian_1(), ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Vector< Real >::scale(), ROL::Temp, and update().

Referenced by applyAdjointHessian(), and checkApplyAdjointHessian_11().

◆ applyAdjointHessian_12()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{ahwv} = c_{uz}(u,z)(v,\cdot)^*w\), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 652 of file ROL_Constraint_SimOpt.hpp.

References applyAdjointJacobian_2(), ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Vector< Real >::scale(), ROL::Temp, and update().

Referenced by applyAdjointHessian(), and checkApplyAdjointHessian_12().

◆ applyAdjointHessian_21()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{ahwv} = c_{zu}(u,z)(v,\cdot)^*w\), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 697 of file ROL_Constraint_SimOpt.hpp.

References applyAdjointJacobian_1(), ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Vector< Real >::scale(), ROL::Temp, and update().

Referenced by applyAdjointHessian(), and checkApplyAdjointHessian_21().

◆ applyAdjointHessian_22()

template<class Real>
virtual void ROL::Constraint_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, \(\mathsf{ahwv} = c_{zz}(u,z)(v,\cdot)^*w\), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented in constraint1< Real >, constraint2< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, Constraint_BurgersControl< Real >, DiffusionConstraint< Real >, redConstraint< Real >, and valConstraint< Real >.

Definition at line 741 of file ROL_Constraint_SimOpt.hpp.

References applyAdjointJacobian_2(), ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::ROL_EPSILON(), ROL::Vector< Real >::scale(), ROL::Temp, and update().

Referenced by applyAdjointHessian(), and checkApplyAdjointHessian_22().

◆ solveAugmentedSystem()

template<class Real>
virtual std::vector< Real > ROL::Constraint_SimOpt< Real >::solveAugmentedSystem ( Vector< Real > & v1,
Vector< Real > & v2,
const Vector< Real > & b1,
const Vector< Real > & b2,
const Vector< Real > & x,
Real & tol )
inlinevirtual

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.

Parameters
[out]v1is the optimization-space component of the result
[out]v2is the dual constraint-space component of the result
[in]b1is the dual optimization-space component of the right-hand side
[in]b2is the constraint-space component of the right-hand side
[in]xis the constraint argument; an optimization-space vector
[in,out]tolis the nominal relative residual tolerance

On return, \( [\mathsf{v1} \,\, \mathsf{v2}] \) approximately solves the augmented system, where the size of the residual is governed by special stopping conditions.

The default implementation is the preconditioned generalized minimal residual (GMRES) method, which enables the use of nonsymmetric preconditioners.


Definition at line 806 of file ROL_Constraint_SimOpt.hpp.

References ROL::Constraint< Real >::solveAugmentedSystem().

◆ applyPreconditioner()

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::applyPreconditioner ( Vector< Real > & pv,
const Vector< Real > & v,
const Vector< Real > & x,
const Vector< Real > & g,
Real & tol )
inlinevirtual

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.

Parameters
[out]pvis the result of applying the constraint preconditioner to v at x; a constraint-space vector
[in]vis a constraint-space vector
[in]xis the preconditioner argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations

On return, \(\mathsf{pv} = P(x)v\), where \(v \in \mathcal{C}\), \(\mathsf{pv} \in \mathcal{C}\).

The default implementation is a null-op.


Definition at line 834 of file ROL_Constraint_SimOpt.hpp.

References applyInverseAdjointJacobian_1(), applyInverseJacobian_1(), ROL::Constraint< Real >::applyPreconditioner(), ROL::Vector_SimOpt< Real >::clone(), ROL::Vector_SimOpt< Real >::dual(), ROL::Vector_SimOpt< Real >::get_1(), ROL::Vector_SimOpt< Real >::get_2(), and ROL::ROL::Vector< Real >::set().

◆ update() [3/4]

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

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

Definition at line 869 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector_SimOpt< Real >::get_1(), ROL::Vector_SimOpt< Real >::get_2(), and update().

◆ update() [4/4]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::update ( const Vector< Real > & x,
UpdateType type,
int iter = -1 )
inlinevirtual

◆ value() [2/2]

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::value ( Vector< Real > & c,
const Vector< Real > & x,
Real & tol )
inlinevirtual

◆ applyJacobian()

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::applyJacobian ( Vector< Real > & jv,
const Vector< Real > & v,
const Vector< Real > & x,
Real & tol )
inlinevirtual

◆ applyAdjointJacobian()

template<class Real>
virtual void ROL::Constraint_SimOpt< Real >::applyAdjointJacobian ( Vector< Real > & ajv,
const Vector< Real > & v,
const Vector< Real > & x,
Real & tol )
inlinevirtual

◆ applyAdjointHessian()

◆ checkSolve()

template<class Real>
virtual Real ROL::Constraint_SimOpt< Real >::checkSolve ( const Vector< Real > & u,
const Vector< Real > & z,
const Vector< Real > & c,
const bool printToStream = true,
std::ostream & outStream = std::cout )
inlinevirtual

Definition at line 951 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector< Real >::clone(), ROL::ROL_EPSILON(), solve(), ROL::Temp, update(), and value().

Referenced by main().

◆ checkAdjointConsistencyJacobian_1() [1/2]

template<class Real>
virtual Real ROL::Constraint_SimOpt< 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 )
inlinevirtual

Check the consistency of the Jacobian and its adjoint. This is the primary interface.

Parameters
[out]wis 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]printToStreamis is a flag that turns on/off output
[in]outStreamis the output stream

Definition at line 992 of file ROL_Constraint_SimOpt.hpp.

References checkAdjointConsistencyJacobian_1(), and ROL::Vector< Real >::dual().

Referenced by checkAdjointConsistencyJacobian_1(), and main().

◆ checkAdjointConsistencyJacobian_1() [2/2]

template<class Real>
virtual Real ROL::Constraint_SimOpt< 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 )
inlinevirtual

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.

Parameters
[out]wis 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]dualwis a constraint-space vector
[in]dualvis a dual simulation-space vector
[in]printToStreamis is a flag that turns on/off output
[in]outStreamis the output stream

Definition at line 1017 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector< Real >::apply(), applyAdjointJacobian_1(), applyJacobian_1(), ROL::Vector< Real >::clone(), ROL::ROL_EPSILON(), ROL::ROL_UNDERFLOW(), ROL::Temp, and update().

◆ checkAdjointConsistencyJacobian_2() [1/2]

template<class Real>
virtual Real ROL::Constraint_SimOpt< 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 )
inlinevirtual

Check the consistency of the Jacobian and its adjoint. This is the primary interface.

Parameters
[out]wis a dual 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]printToStreamis is a flag that turns on/off output
[in]outStreamis the output stream

Definition at line 1062 of file ROL_Constraint_SimOpt.hpp.

References checkAdjointConsistencyJacobian_2(), and ROL::Vector< Real >::dual().

Referenced by checkAdjointConsistencyJacobian_2(), and main().

◆ checkAdjointConsistencyJacobian_2() [2/2]

template<class Real>
virtual Real ROL::Constraint_SimOpt< 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 )
inlinevirtual

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.

Parameters
[out]wis a dual 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]dualwis a constraint-space vector
[in]dualvis a dual optimization-space vector
[in]printToStreamis is a flag that turns on/off output
[in]outStreamis the output stream

Definition at line 1086 of file ROL_Constraint_SimOpt.hpp.

References ROL::Vector< Real >::apply(), applyAdjointJacobian_2(), applyJacobian_2(), ROL::Vector< Real >::clone(), ROL::ROL_EPSILON(), ROL::ROL_UNDERFLOW(), ROL::Temp, and update().

◆ checkInverseJacobian_1()

template<class Real>
virtual Real ROL::Constraint_SimOpt< 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 )
inlinevirtual

◆ checkInverseAdjointJacobian_1()

template<class Real>
virtual Real ROL::Constraint_SimOpt< 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 )
inlinevirtual

◆ checkApplyJacobian_1() [1/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

Definition at line 1180 of file ROL_Constraint_SimOpt.hpp.

References checkApplyJacobian_1(), and ROL_NUM_CHECKDERIV_STEPS.

Referenced by checkApplyJacobian_1().

◆ checkApplyJacobian_1() [2/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

◆ checkApplyJacobian_2() [1/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

Definition at line 1305 of file ROL_Constraint_SimOpt.hpp.

References checkApplyJacobian_2(), and ROL_NUM_CHECKDERIV_STEPS.

Referenced by checkApplyJacobian_2().

◆ checkApplyJacobian_2() [2/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

◆ checkApplyAdjointHessian_11() [1/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

◆ checkApplyAdjointHessian_11() [2/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

◆ checkApplyAdjointHessian_21() [1/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

\( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \)

Definition at line 1554 of file ROL_Constraint_SimOpt.hpp.

References checkApplyAdjointHessian_21(), and ROL_NUM_CHECKDERIV_STEPS.

Referenced by checkApplyAdjointHessian_21().

◆ checkApplyAdjointHessian_21() [2/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

\( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \)

Definition at line 1575 of file ROL_Constraint_SimOpt.hpp.

References applyAdjointHessian_21(), applyAdjointJacobian_1(), ROL::Vector< Real >::clone(), ROL::ROL_EPSILON(), ROL::Finite_Difference_Arrays::shifts, ROL::Temp, update(), and ROL::Finite_Difference_Arrays::weights.

◆ checkApplyAdjointHessian_12() [1/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

\( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \)

Definition at line 1680 of file ROL_Constraint_SimOpt.hpp.

References checkApplyAdjointHessian_12(), and ROL_NUM_CHECKDERIV_STEPS.

Referenced by checkApplyAdjointHessian_12().

◆ checkApplyAdjointHessian_12() [2/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

◆ checkApplyAdjointHessian_22() [1/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

◆ checkApplyAdjointHessian_22() [2/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_SimOpt< 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 )
inline

Member Data Documentation

◆ unew_

template<class Real>
Ptr<Vector<Real> > ROL::Constraint_SimOpt< Real >::unew_
private

Definition at line 77 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and solve().

◆ jv_

template<class Real>
Ptr<Vector<Real> > ROL::Constraint_SimOpt< Real >::jv_
private

Definition at line 78 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and solve().

◆ DEFAULT_atol_

template<class Real>
const Real ROL::Constraint_SimOpt< Real >::DEFAULT_atol_
private

Definition at line 81 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_rtol_

template<class Real>
const Real ROL::Constraint_SimOpt< Real >::DEFAULT_rtol_
private

Definition at line 82 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_stol_

template<class Real>
const Real ROL::Constraint_SimOpt< Real >::DEFAULT_stol_
private

Definition at line 83 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_factor_

template<class Real>
const Real ROL::Constraint_SimOpt< Real >::DEFAULT_factor_
private

Definition at line 84 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_decr_

template<class Real>
const Real ROL::Constraint_SimOpt< Real >::DEFAULT_decr_
private

Definition at line 85 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_maxit_

template<class Real>
const int ROL::Constraint_SimOpt< Real >::DEFAULT_maxit_
private

Definition at line 86 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_print_

template<class Real>
const bool ROL::Constraint_SimOpt< Real >::DEFAULT_print_
private

Definition at line 87 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_zero_

template<class Real>
const bool ROL::Constraint_SimOpt< Real >::DEFAULT_zero_
private

Definition at line 88 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ DEFAULT_solverType_

template<class Real>
const int ROL::Constraint_SimOpt< Real >::DEFAULT_solverType_
private

Definition at line 89 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and setSolveParameters().

◆ atol_

template<class Real>
Real ROL::Constraint_SimOpt< Real >::atol_
protected

Definition at line 94 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ rtol_

template<class Real>
Real ROL::Constraint_SimOpt< Real >::rtol_
protected

Definition at line 95 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ stol_

template<class Real>
Real ROL::Constraint_SimOpt< Real >::stol_
protected

Definition at line 96 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ factor_

template<class Real>
Real ROL::Constraint_SimOpt< Real >::factor_
protected

Definition at line 97 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ decr_

template<class Real>
Real ROL::Constraint_SimOpt< Real >::decr_
protected

Definition at line 98 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ maxit_

template<class Real>
int ROL::Constraint_SimOpt< Real >::maxit_
protected

Definition at line 99 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ print_

template<class Real>
bool ROL::Constraint_SimOpt< Real >::print_
protected

Definition at line 100 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ zero_

template<class Real>
bool ROL::Constraint_SimOpt< Real >::zero_
protected

Definition at line 101 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ solverType_

template<class Real>
int ROL::Constraint_SimOpt< Real >::solverType_
protected

Definition at line 102 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), setSolveParameters(), and solve().

◆ firstSolve_

template<class Real>
bool ROL::Constraint_SimOpt< Real >::firstSolve_
protected

Definition at line 105 of file ROL_Constraint_SimOpt.hpp.

Referenced by Constraint_SimOpt(), and solve().


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