ROL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
EqualityConstraint_BurgersControl< Real > Class Template Reference
+ Inheritance diagram for EqualityConstraint_BurgersControl< Real >:

Public Member Functions

 EqualityConstraint_BurgersControl (int nx=128, Real nu=1.e-2, Real u0=1.0, Real u1=0.0, Real f=0.0)
 
void value (ROL::Vector< Real > &c, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\). More...
 
void solve (ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Given \(z\), solve \(c(u,z)=0\) for \(u\). More...
 
void applyJacobian_1 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ijv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ajv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &iajv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_12 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_21 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_22 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\). More...
 
 EqualityConstraint_BurgersControl (int nx=128, Real nu=1.e-2, Real u0=1.0, Real u1=0.0, Real f=0.0)
 
void value (ROL::Vector< Real > &c, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\). More...
 
void solve (ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Given \(z\), solve \(c(u,z)=0\) for \(u\). More...
 
void applyJacobian_1 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ijv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ajv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &iajv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_12 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_21 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_22 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\). More...
 
 EqualityConstraint_BurgersControl (int nx=128, int nt=100, Real T=1, Real nu=1.e-2, Real u0=0.0, Real u1=0.0, Real f=0.0)
 
void value (ROL::Vector< Real > &c, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\). More...
 
void solve (ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Given \(z\), solve \(c(u,z)=0\) for \(u\). More...
 
void applyJacobian_1 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ijv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ajv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &ijv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::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 (ROL::Vector< Real > &hwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_12 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_21 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\). More...
 
void applyAdjointHessian_22 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol)
 Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\). More...
 
- Public Member Functions inherited from ROL::EqualityConstraint_SimOpt< Real >
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. 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...

 
 EqualityConstraint_SimOpt (void)
 
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)
 
- 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

Real compute_norm (const std::vector< Real > &r)
 
Real dot (const std::vector< Real > &x, const std::vector< Real > &y)
 
void update (std::vector< Real > &u, const std::vector< Real > &s, const Real alpha=1.0)
 
void scale (std::vector< Real > &u, const Real alpha=0.0)
 
void compute_residual (std::vector< Real > &r, const std::vector< Real > &u, const std::vector< Real > &z)
 
void compute_pde_jacobian (std::vector< Real > &dl, std::vector< Real > &d, std::vector< Real > &du, const std::vector< Real > &u)
 
void linear_solve (std::vector< Real > &u, std::vector< Real > &dl, std::vector< Real > &d, std::vector< Real > &du, const std::vector< Real > &r, const bool transpose=false)
 
Real compute_norm (const std::vector< Real > &r)
 
Real dot (const std::vector< Real > &x, const std::vector< Real > &y)
 
void update (std::vector< Real > &u, const std::vector< Real > &s, const Real alpha=1.0)
 
void scale (std::vector< Real > &u, const Real alpha=0.0)
 
void compute_residual (std::vector< Real > &r, const std::vector< Real > &u, const std::vector< Real > &z)
 
void compute_pde_jacobian (std::vector< Real > &dl, std::vector< Real > &d, std::vector< Real > &du, const std::vector< Real > &u)
 
void linear_solve (std::vector< Real > &u, std::vector< Real > &dl, std::vector< Real > &d, std::vector< Real > &du, const std::vector< Real > &r, const bool transpose=false)
 
Real compute_norm (const std::vector< Real > &r)
 
Real dot (const std::vector< Real > &x, const std::vector< Real > &y)
 
void update (std::vector< Real > &u, const std::vector< Real > &s, const Real alpha=1.0)
 
void scale (std::vector< Real > &u, const Real alpha=0.0)
 
void compute_residual (std::vector< Real > &r, const std::vector< Real > &uold, const std::vector< Real > &zold, const std::vector< Real > &unew, const std::vector< Real > &znew)
 
void compute_pde_jacobian (std::vector< Real > &dl, std::vector< Real > &d, std::vector< Real > &du, const std::vector< Real > &u)
 
void apply_pde_jacobian_new (std::vector< Real > &jv, const std::vector< Real > &v, const std::vector< Real > &u, bool adjoint=false)
 
void apply_pde_jacobian_old (std::vector< Real > &jv, const std::vector< Real > &v, const std::vector< Real > &u, bool adjoint=false)
 
void apply_pde_jacobian (std::vector< Real > &jv, const std::vector< Real > &vold, const std::vector< Real > &uold, const std::vector< Real > &vnew, const std::vector< Real > unew, bool adjoint=false)
 
void apply_pde_hessian (std::vector< Real > &hv, const std::vector< Real > &wold, const std::vector< Real > &vold, const std::vector< Real > &wnew, const std::vector< Real > &vnew)
 
void apply_control_jacobian (std::vector< Real > &jv, const std::vector< Real > &v, bool adjoint=false)
 
void run_newton (std::vector< Real > &u, const std::vector< Real > &znew, const std::vector< Real > &uold, const std::vector< Real > &zold)
 
void linear_solve (std::vector< Real > &u, const std::vector< Real > &dl, const std::vector< Real > &d, const std::vector< Real > &du, const std::vector< Real > &r, const bool transpose=false)
 

Private Attributes

int nx_
 
Real dx_
 
Real nu_
 
Real u0_
 
Real u1_
 
Real f_
 
unsigned nx_
 
unsigned nt_
 
Real T_
 
Real dt_
 
std::vector< Real > u_init_
 

Detailed Description

template<class Real>
class EqualityConstraint_BurgersControl< Real >

Definition at line 69 of file burgers-control/example_02.cpp.

Constructor & Destructor Documentation

template<class Real>
EqualityConstraint_BurgersControl< Real >::EqualityConstraint_BurgersControl ( int  nx = 128,
Real  nu = 1.e-2,
Real  u0 = 1.0,
Real  u1 = 0.0,
Real  f = 0.0 
)
inline
template<class Real>
EqualityConstraint_BurgersControl< Real >::EqualityConstraint_BurgersControl ( int  nx = 128,
Real  nu = 1.e-2,
Real  u0 = 1.0,
Real  u1 = 0.0,
Real  f = 0.0 
)
inline
template<class Real>
EqualityConstraint_BurgersControl< Real >::EqualityConstraint_BurgersControl ( int  nx = 128,
int  nt = 100,
Real  T = 1,
Real  nu = 1.e-2,
Real  u0 = 0.0,
Real  u1 = 0.0,
Real  f = 0.0 
)
inline

Member Function Documentation

template<class Real>
Real EqualityConstraint_BurgersControl< Real >::compute_norm ( const std::vector< Real > &  r)
inlineprivate
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::dot ( const std::vector< Real > &  x,
const std::vector< Real > &  y 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::update ( std::vector< Real > &  u,
const std::vector< Real > &  s,
const Real  alpha = 1.0 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::scale ( std::vector< Real > &  u,
const Real  alpha = 0.0 
)
inlineprivate

Definition at line 106 of file burgers-control/example_02.cpp.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::compute_residual ( std::vector< Real > &  r,
const std::vector< Real > &  u,
const std::vector< Real > &  z 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian ( std::vector< Real > &  dl,
std::vector< Real > &  d,
std::vector< Real > &  du,
const std::vector< Real > &  u 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::linear_solve ( std::vector< Real > &  u,
std::vector< Real > &  dl,
std::vector< Real > &  d,
std::vector< Real > &  du,
const std::vector< Real > &  r,
const bool  transpose = false 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::value ( ROL::Vector< Real > &  c,
const ROL::Vector< Real > &  u,
const ROL::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, \(\mathsf{c} = c(u,z)\), where \(\mathsf{c} \in \mathcal{C}\), \(\mathsf{u} \in \mathcal{U}\), and $ \(\mathsf{z} \in\mathcal{Z}\).


Implements ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 194 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_residual().

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

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

Parameters
[out]uis the solution vector; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 205 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_norm(), EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::compute_residual(), EqualityConstraint_BurgersControl< Real >::linear_solve(), ROL::Vector< Real >::norm(), EqualityConstraint_BurgersControl< Real >::nx_, ROL::ROL_EPSILON, and EqualityConstraint_BurgersControl< Real >::update().

Referenced by main().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyJacobian_1 ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 256 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, EqualityConstraint_BurgersControl< Real >::nu_, EqualityConstraint_BurgersControl< Real >::nx_, EqualityConstraint_BurgersControl< Real >::u0_, and EqualityConstraint_BurgersControl< Real >::u1_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyJacobian_2 ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 284 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyInverseJacobian_1 ( ROL::Vector< Real > &  ijv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 300 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::linear_solve(), and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointJacobian_1 ( ROL::Vector< Real > &  ajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 319 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, EqualityConstraint_BurgersControl< Real >::nu_, EqualityConstraint_BurgersControl< Real >::nx_, EqualityConstraint_BurgersControl< Real >::u0_, and EqualityConstraint_BurgersControl< Real >::u1_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointJacobian_2 ( ROL::Vector< Real > &  ajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 347 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyInverseAdjointJacobian_1 ( ROL::Vector< Real > &  iajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 376 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::linear_solve(), and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_11 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual simulation-space vector
[in]wis the direction vector; 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{ahwv} = c_{uu}(u,z)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}^*\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 393 of file burgers-control/example_02.cpp.

References EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_12 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual optimization-space vector
[in]wis the direction vector; 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{ahwv} = c_{uz}(u,z)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}^*\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 417 of file burgers-control/example_02.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_21 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual simulation-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a dual 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)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}^*\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 421 of file burgers-control/example_02.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_22 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual optimization-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a dual 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)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}^*\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 425 of file burgers-control/example_02.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
Real EqualityConstraint_BurgersControl< Real >::compute_norm ( const std::vector< Real > &  r)
inlineprivate
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::dot ( const std::vector< Real > &  x,
const std::vector< Real > &  y 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::update ( std::vector< Real > &  u,
const std::vector< Real > &  s,
const Real  alpha = 1.0 
)
inlineprivate

Definition at line 100 of file burgers-control/example_03.cpp.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::scale ( std::vector< Real > &  u,
const Real  alpha = 0.0 
)
inlineprivate

Definition at line 106 of file burgers-control/example_03.cpp.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::compute_residual ( std::vector< Real > &  r,
const std::vector< Real > &  u,
const std::vector< Real > &  z 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian ( std::vector< Real > &  dl,
std::vector< Real > &  d,
std::vector< Real > &  du,
const std::vector< Real > &  u 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::linear_solve ( std::vector< Real > &  u,
std::vector< Real > &  dl,
std::vector< Real > &  d,
std::vector< Real > &  du,
const std::vector< Real > &  r,
const bool  transpose = false 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::value ( ROL::Vector< Real > &  c,
const ROL::Vector< Real > &  u,
const ROL::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, \(\mathsf{c} = c(u,z)\), where \(\mathsf{c} \in \mathcal{C}\), \(\mathsf{u} \in \mathcal{U}\), and $ \(\mathsf{z} \in\mathcal{Z}\).


Implements ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 194 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_residual().

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

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

Parameters
[out]uis the solution vector; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 205 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_norm(), EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::compute_residual(), EqualityConstraint_BurgersControl< Real >::linear_solve(), ROL::Vector< Real >::norm(), EqualityConstraint_BurgersControl< Real >::nx_, ROL::ROL_EPSILON, and EqualityConstraint_BurgersControl< Real >::update().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyJacobian_1 ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 256 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, EqualityConstraint_BurgersControl< Real >::nu_, EqualityConstraint_BurgersControl< Real >::nx_, EqualityConstraint_BurgersControl< Real >::u0_, and EqualityConstraint_BurgersControl< Real >::u1_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyJacobian_2 ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 284 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyInverseJacobian_1 ( ROL::Vector< Real > &  ijv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 300 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::linear_solve(), and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointJacobian_1 ( ROL::Vector< Real > &  ajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 319 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, EqualityConstraint_BurgersControl< Real >::nu_, EqualityConstraint_BurgersControl< Real >::nx_, EqualityConstraint_BurgersControl< Real >::u0_, and EqualityConstraint_BurgersControl< Real >::u1_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointJacobian_2 ( ROL::Vector< Real > &  ajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 347 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::dx_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyInverseAdjointJacobian_1 ( ROL::Vector< Real > &  iajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 376 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::linear_solve(), and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_11 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual simulation-space vector
[in]wis the direction vector; 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{ahwv} = c_{uu}(u,z)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}^*\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 393 of file burgers-control/example_03.cpp.

References EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_12 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual optimization-space vector
[in]wis the direction vector; 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{ahwv} = c_{uz}(u,z)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}^*\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 417 of file burgers-control/example_03.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_21 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual simulation-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a dual 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)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}^*\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 421 of file burgers-control/example_03.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_22 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual optimization-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a dual 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)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}^*\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 425 of file burgers-control/example_03.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
Real EqualityConstraint_BurgersControl< Real >::compute_norm ( const std::vector< Real > &  r)
inlineprivate

Definition at line 87 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::dot().

template<class Real>
Real EqualityConstraint_BurgersControl< Real >::dot ( const std::vector< Real > &  x,
const std::vector< Real > &  y 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::update ( std::vector< Real > &  u,
const std::vector< Real > &  s,
const Real  alpha = 1.0 
)
inlineprivate

Definition at line 108 of file example_04.cpp.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::scale ( std::vector< Real > &  u,
const Real  alpha = 0.0 
)
inlineprivate

Definition at line 114 of file example_04.cpp.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::compute_residual ( std::vector< Real > &  r,
const std::vector< Real > &  uold,
const std::vector< Real > &  zold,
const std::vector< Real > &  unew,
const std::vector< Real > &  znew 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian ( std::vector< Real > &  dl,
std::vector< Real > &  d,
std::vector< Real > &  du,
const std::vector< Real > &  u 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::apply_pde_jacobian_new ( std::vector< Real > &  jv,
const std::vector< Real > &  v,
const std::vector< Real > &  u,
bool  adjoint = false 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::apply_pde_jacobian_old ( std::vector< Real > &  jv,
const std::vector< Real > &  v,
const std::vector< Real > &  u,
bool  adjoint = false 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::apply_pde_jacobian ( std::vector< Real > &  jv,
const std::vector< Real > &  vold,
const std::vector< Real > &  uold,
const std::vector< Real > &  vnew,
const std::vector< Real >  unew,
bool  adjoint = false 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::apply_pde_hessian ( std::vector< Real > &  hv,
const std::vector< Real > &  wold,
const std::vector< Real > &  vold,
const std::vector< Real > &  wnew,
const std::vector< Real > &  vnew 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::apply_control_jacobian ( std::vector< Real > &  jv,
const std::vector< Real > &  v,
bool  adjoint = false 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::run_newton ( std::vector< Real > &  u,
const std::vector< Real > &  znew,
const std::vector< Real > &  uold,
const std::vector< Real > &  zold 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::linear_solve ( std::vector< Real > &  u,
const std::vector< Real > &  dl,
const std::vector< Real > &  d,
const std::vector< Real > &  du,
const std::vector< Real > &  r,
const bool  transpose = false 
)
inlineprivate
template<class Real>
void EqualityConstraint_BurgersControl< Real >::value ( ROL::Vector< Real > &  c,
const ROL::Vector< Real > &  u,
const ROL::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, \(\mathsf{c} = c(u,z)\), where \(\mathsf{c} \in \mathcal{C}\), \(\mathsf{u} \in \mathcal{U}\), and $ \(\mathsf{z} \in\mathcal{Z}\).


Implements ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 446 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::compute_residual(), EqualityConstraint_BurgersControl< Real >::nt_, EqualityConstraint_BurgersControl< Real >::nx_, and EqualityConstraint_BurgersControl< Real >::u_init_.

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

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

Parameters
[out]uis the solution vector; a simulation-space vector
[in]zis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 485 of file example_04.cpp.

References ROL::Vector< Real >::norm(), EqualityConstraint_BurgersControl< Real >::nt_, EqualityConstraint_BurgersControl< Real >::nx_, EqualityConstraint_BurgersControl< Real >::run_newton(), and EqualityConstraint_BurgersControl< Real >::u_init_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyJacobian_1 ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 518 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::apply_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::nt_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyJacobian_2 ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 545 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::apply_control_jacobian(), EqualityConstraint_BurgersControl< Real >::nt_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyInverseJacobian_1 ( ROL::Vector< Real > &  ijv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 574 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::apply_pde_jacobian_old(), EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::linear_solve(), EqualityConstraint_BurgersControl< Real >::nt_, EqualityConstraint_BurgersControl< Real >::nx_, and EqualityConstraint_BurgersControl< Real >::update().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointJacobian_1 ( ROL::Vector< Real > &  ajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 610 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::apply_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::nt_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointJacobian_2 ( ROL::Vector< Real > &  ajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 635 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::apply_control_jacobian(), EqualityConstraint_BurgersControl< Real >::nt_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyInverseAdjointJacobian_1 ( ROL::Vector< Real > &  iajv,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::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 from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 665 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::apply_pde_jacobian_old(), EqualityConstraint_BurgersControl< Real >::compute_pde_jacobian(), EqualityConstraint_BurgersControl< Real >::linear_solve(), EqualityConstraint_BurgersControl< Real >::nt_, EqualityConstraint_BurgersControl< Real >::nx_, and EqualityConstraint_BurgersControl< Real >::update().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_11 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual simulation-space vector
[in]wis the direction vector; 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{ahwv} = c_{uu}(u,z)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}^*\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 699 of file example_04.cpp.

References EqualityConstraint_BurgersControl< Real >::apply_pde_hessian(), EqualityConstraint_BurgersControl< Real >::nt_, and EqualityConstraint_BurgersControl< Real >::nx_.

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_12 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{uz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{U}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual optimization-space vector
[in]wis the direction vector; 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{ahwv} = c_{uz}(u,z)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{U}^*\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 724 of file example_04.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_21 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zu}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{U}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual simulation-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a dual 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)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}^*\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 728 of file example_04.cpp.

References ROL::Vector< Real >::zero().

template<class Real>
void EqualityConstraint_BurgersControl< Real >::applyAdjointHessian_22 ( ROL::Vector< Real > &  ahwv,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  u,
const ROL::Vector< Real > &  z,
Real &  tol 
)
inlinevirtual

Apply the adjoint of the partial constraint Hessian at \((u,z)\), \(c_{zz}(u,z)^* \in L(L(\mathcal{C}^*, \mathcal{Z}^*), \mathcal{Z}^*)\), to vector \(v\) in direction \(w\).

Parameters
[out]ahwvis the result of applying the adjoint of the constraint Hessian to v at \((u,z)\) in direction w; a dual optimization-space vector
[in]wis the direction vector; a dual constraint-space vector
[in]vis a dual 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)^*(w,v) \), where \(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}^*\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).


Reimplemented from ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 732 of file example_04.cpp.

References ROL::Vector< Real >::zero().

Member Data Documentation

template<class Real>
int EqualityConstraint_BurgersControl< Real >::nx_
private
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::dx_
private
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::nu_
private
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::u0_
private
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::u1_
private
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::f_
private
template<class Real>
unsigned EqualityConstraint_BurgersControl< Real >::nx_
private

Definition at line 73 of file example_04.cpp.

template<class Real>
unsigned EqualityConstraint_BurgersControl< Real >::nt_
private
template<class Real>
Real EqualityConstraint_BurgersControl< Real >::T_
private

Definition at line 77 of file example_04.cpp.

template<class Real>
Real EqualityConstraint_BurgersControl< Real >::dt_
private
template<class Real>
std::vector<Real> EqualityConstraint_BurgersControl< Real >::u_init_
private

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