ROL
ROL::Constraint_TimeSimOpt< Real > Class Template Referenceabstract

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

#include <ROL_Constraint_TimeSimOpt.hpp>

Inheritance diagram for ROL::Constraint_TimeSimOpt< Real >:

Public Member Functions

 Constraint_TimeSimOpt ()
virtual void update (const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, bool flag=true, int iter=-1)
 Update constraint functions.
u_old Is the state from the end of the previous time step. u_new Is the state from the end of this time step. z Is the control variable flag = true if optimization variable is changed, iter is the outer algorithm iterations count.
virtual void update_1_old (const Vector< Real > &u_old, bool flag=true, int iter=-1)
 Update constraint functions with respect to Sim variable.
u_old is the state variable flag = true if optimization variable is changed, iter is the outer algorithm iterations count.
virtual void update_1_new (const Vector< Real > &u_new, bool flag=true, int iter=-1)
 Update constraint functions with respect to Sim variable.
u_new is the state variable flag = true if optimization variable is changed, iter is the outer algorithm iterations count.
virtual void update_2 (const Vector< Real > &z, bool flag=true, int iter=-1) override
 Update constraint functions with respect to Opt variable. z is the control variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count.
virtual void value (Vector< Real > &c, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
 Evaluate the constraint operator \(c:\mathcal{U_o}\times\mathcal{U_n}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\).
virtual void solve (Vector< Real > &c, const Vector< Real > &u_old, Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyJacobian_1_old (Vector< Real > &jv, const Vector< Real > &v_old, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyJacobian_1_new (Vector< Real > &jv, const Vector< Real > &v_new, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyInverseJacobian_1_new (Vector< Real > &ijv, const Vector< Real > &v_new, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyJacobian_2 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyAdjointJacobian_1_old (Vector< Real > &ajv_old, const Vector< Real > &dualv, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyAdjointJacobian_1_new (Vector< Real > &ajv_new, const Vector< Real > &dualv, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyInverseAdjointJacobian_1_new (Vector< Real > &iajv, const Vector< Real > &v_new, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyAdjointJacobian_2_time (Vector< Real > &ajv, const Vector< Real > &dualv, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyAdjointHessian_11_old (Vector< Real > &ahwv_old, const Vector< Real > &w, const Vector< Real > &v_new, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void applyAdjointHessian_11_new (Vector< Real > &ahwv_new, const Vector< Real > &w, const Vector< Real > &v_new, const Vector< Real > &u_old, const Vector< Real > &u_new, const Vector< Real > &z, Real &tol)=0
virtual void update (const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) override
virtual void value (Vector< Real > &c, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
virtual void solve (Vector< Real > &c, Vector< Real > &u, const Vector< Real > &z, Real &tol) override
virtual void applyJacobian_1 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
virtual void applyJacobian_2 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
virtual void applyInverseJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override final
virtual void applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
virtual void applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
virtual void applyInverseAdjointJacobian_1 (Vector< Real > &iajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override final
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) override
 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) override
 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) override
 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) override
 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 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) override
virtual Real checkInverseJacobian_1_new (const ROL::Vector< Real > &c, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &z, const ROL::Vector< Real > &v_new, const bool printToStream=true, std::ostream &outStream=std::cout)
virtual Real checkInverseAdjointJacobian_1_new (const ROL::Vector< Real > &c, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &z, const ROL::Vector< Real > &v_new, const bool printToStream=true, std::ostream &outStream=std::cout)
std::vector< std::vector< Real > > checkApplyJacobian_1_new (const Vector< Real > &u_new, const Vector< Real > &u_old, 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_new (const Vector< Real > &u_new, const Vector< Real > &u_old, 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)

Protected Member Functions

VectorWorkspace< Real > & getVectorWorkspace () const

Private Member Functions

Vector< Real > & getNewVector (Vector< Real > &x) const
const Vector< Real > & getNewVector (const Vector< Real > &x) const
Vector< Real > & getOldVector (Vector< Real > &x) const
const Vector< Real > & getOldVector (const Vector< Real > &x) const

Private Attributes

VectorWorkspace< Real > workspace_

Detailed Description

template<class Real>
class ROL::Constraint_TimeSimOpt< Real >

Defines the time dependent constraint operator interface for simulation-based optimization.

This constraint interface inherits from ROL_Constraint_SimOpt. Though the interface takes two simulation space vectors from spaces \(\mathcal{U_o}\times\mathcal{U_n}\). The space \(\mathcal{U_o}\) is old'' information that accounts for the initial condition on the time interval. The space \f$\mathcal{U_n}\f$ is the new'' variables that can be determined by satisfying constraints in the form

\[ c(u_o,u_n,z) = 0 \,. \]

where \(u_0 \in \mathcal{U_o},\; u_n\in\mathcal{U_n},\) and \(z\in\mathcal{Z}\). In this way this constraint defines a sequence of state variables. The basic operator interface, to be implemented by the user, requires:

  • value – constraint evaluation.
  • applyJacobian_1_old – action of the partial constraint Jacobian –derivatives are with respect to the first component \(\mathcal{U_o}\);
  • applyJacobian_1_new – action of the partial constraint Jacobian –derivatives are with respect to the first component \(\mathcal{U_n}\);
  • applyJacobian_2 – action of the partial constraint Jacobian –derivatives are with respect to the second component \(\mathcal{Z}\);
  • applyAdjointJacobian_1_old – action of the adjoint of the partial constraint Jacobian –derivatives are with respect to the first component \(\mathcal{U_o}\);
  • applyAdjointJacobian_1_new – action of the adjoint of the partial constraint Jacobian –derivatives are with respect to the first component \(\mathcal{U_n}\);
  • applyAdjointJacobian_2_time – action of the adjoint of the partial constraint Jacobian –derivatives are with respect to the second component \(\mathcal{Z}\); (note the time suffix here is to prevent collisions with the parent class)

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 100 of file ROL_Constraint_TimeSimOpt.hpp.

Constructor & Destructor Documentation

◆ Constraint_TimeSimOpt()

template<class Real>
ROL::Constraint_TimeSimOpt< Real >::Constraint_TimeSimOpt ( )
inline

Definition at line 136 of file ROL_Constraint_TimeSimOpt.hpp.

Member Function Documentation

◆ getNewVector() [1/2]

template<class Real>
Vector< Real > & ROL::Constraint_TimeSimOpt< Real >::getNewVector ( Vector< Real > & x) const
inlineprivate

◆ getNewVector() [2/2]

template<class Real>
const Vector< Real > & ROL::Constraint_TimeSimOpt< Real >::getNewVector ( const Vector< Real > & x) const
inlineprivate

◆ getOldVector() [1/2]

template<class Real>
Vector< Real > & ROL::Constraint_TimeSimOpt< Real >::getOldVector ( Vector< Real > & x) const
inlineprivate

◆ getOldVector() [2/2]

template<class Real>
const Vector< Real > & ROL::Constraint_TimeSimOpt< Real >::getOldVector ( const Vector< Real > & x) const
inlineprivate

◆ getVectorWorkspace()

template<class Real>
VectorWorkspace< Real > & ROL::Constraint_TimeSimOpt< Real >::getVectorWorkspace ( ) const
inlineprotected

Definition at line 133 of file ROL_Constraint_TimeSimOpt.hpp.

References workspace_.

◆ update() [1/2]

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

Update constraint functions.
u_old Is the state from the end of the previous time step. u_new Is the state from the end of this time step. z Is the control variable flag = true if optimization variable is changed, iter is the outer algorithm iterations count.

Definition at line 149 of file ROL_Constraint_TimeSimOpt.hpp.

References update_1_new(), update_1_old(), and update_2().

Referenced by checkApplyJacobian_1_new(), checkInverseAdjointJacobian_1_new(), checkInverseJacobian_1_new(), checkSolve(), and update().

◆ update_1_old()

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

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

Definition at line 163 of file ROL_Constraint_TimeSimOpt.hpp.

Referenced by update().

◆ update_1_new()

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

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

Definition at line 170 of file ROL_Constraint_TimeSimOpt.hpp.

Referenced by update().

◆ update_2()

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

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

Definition at line 177 of file ROL_Constraint_TimeSimOpt.hpp.

Referenced by update().

◆ value() [1/2]

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

Evaluate the constraint operator \(c:\mathcal{U_o}\times\mathcal{U_n}\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]u_oldis the constraint argument; a simulation-space vector from the previous interval
[in]u_newis the constraint argument; a simulation-space vector from the current interval
[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_o} \in \mathcal{U_o}\), \(\mathsf{u_n} \in \mathcal{U_n}\), and $ \(\mathsf{z} \in\mathcal{Z}\).


Referenced by checkApplyJacobian_1_new(), checkSolve(), and value().

◆ solve() [1/2]

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::solve ( Vector< Real > & c,
const Vector< Real > & u_old,
Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

Referenced by checkSolve(), and solve().

◆ applyJacobian_1_old()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyJacobian_1_old ( Vector< Real > & jv,
const Vector< Real > & v_old,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

Referenced by applyJacobian_1().

◆ applyJacobian_1_new()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyJacobian_1_new ( Vector< Real > & jv,
const Vector< Real > & v_new,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

◆ applyInverseJacobian_1_new()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyInverseJacobian_1_new ( Vector< Real > & ijv,
const Vector< Real > & v_new,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

◆ applyJacobian_2() [1/2]

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyJacobian_2 ( Vector< Real > & jv,
const Vector< Real > & v,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

Referenced by applyJacobian_2().

◆ applyAdjointJacobian_1_old()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyAdjointJacobian_1_old ( Vector< Real > & ajv_old,
const Vector< Real > & dualv,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

Referenced by applyAdjointJacobian_1().

◆ applyAdjointJacobian_1_new()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyAdjointJacobian_1_new ( Vector< Real > & ajv_new,
const Vector< Real > & dualv,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

◆ applyInverseAdjointJacobian_1_new()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyInverseAdjointJacobian_1_new ( Vector< Real > & iajv,
const Vector< Real > & v_new,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

◆ applyAdjointJacobian_2_time()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyAdjointJacobian_2_time ( Vector< Real > & ajv,
const Vector< Real > & dualv,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

Referenced by applyAdjointJacobian_2().

◆ applyAdjointHessian_11_old()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyAdjointHessian_11_old ( Vector< Real > & ahwv_old,
const Vector< Real > & w,
const Vector< Real > & v_new,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

Referenced by applyAdjointHessian_11().

◆ applyAdjointHessian_11_new()

template<class Real>
virtual void ROL::Constraint_TimeSimOpt< Real >::applyAdjointHessian_11_new ( Vector< Real > & ahwv_new,
const Vector< Real > & w,
const Vector< Real > & v_new,
const Vector< Real > & u_old,
const Vector< Real > & u_new,
const Vector< Real > & z,
Real & tol )
pure virtual

Referenced by applyAdjointHessian_11().

◆ update() [2/2]

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

Definition at line 273 of file ROL_Constraint_TimeSimOpt.hpp.

References getNewVector(), getOldVector(), and update().

◆ value() [2/2]

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

Definition at line 282 of file ROL_Constraint_TimeSimOpt.hpp.

References getNewVector(), getOldVector(), and value().

◆ solve() [2/2]

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

Definition at line 294 of file ROL_Constraint_TimeSimOpt.hpp.

References getNewVector(), getOldVector(), and solve().

◆ applyJacobian_1()

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

◆ applyJacobian_2() [2/2]

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

Definition at line 332 of file ROL_Constraint_TimeSimOpt.hpp.

References applyJacobian_2(), getNewVector(), and getOldVector().

◆ applyInverseJacobian_1()

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

Definition at line 347 of file ROL_Constraint_TimeSimOpt.hpp.

◆ applyAdjointJacobian_1()

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

◆ applyAdjointJacobian_2()

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

◆ applyInverseAdjointJacobian_1()

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

Definition at line 381 of file ROL_Constraint_TimeSimOpt.hpp.

◆ applyAdjointHessian_11()

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

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}^*\).


Definition at line 407 of file ROL_Constraint_TimeSimOpt.hpp.

References applyAdjointHessian_11_new(), applyAdjointHessian_11_old(), getNewVector(), and getOldVector().

◆ applyAdjointHessian_12()

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

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}^*\).


Definition at line 445 of file ROL_Constraint_TimeSimOpt.hpp.

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

◆ applyAdjointHessian_21()

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

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}^*\).


Definition at line 472 of file ROL_Constraint_TimeSimOpt.hpp.

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

◆ applyAdjointHessian_22()

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

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}^*\).


Definition at line 498 of file ROL_Constraint_TimeSimOpt.hpp.

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

◆ checkSolve()

template<class Real>
virtual Real ROL::Constraint_TimeSimOpt< 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 )
inlineoverridevirtual

Definition at line 508 of file ROL_Constraint_TimeSimOpt.hpp.

References ROL::ROL_EPSILON(), solve(), update(), value(), and workspace_.

◆ checkInverseJacobian_1_new()

template<class Real>
virtual Real ROL::Constraint_TimeSimOpt< Real >::checkInverseJacobian_1_new ( const ROL::Vector< Real > & c,
const ROL::Vector< Real > & u_new,
const ROL::Vector< Real > & u_old,
const ROL::Vector< Real > & z,
const ROL::Vector< Real > & v_new,
const bool printToStream = true,
std::ostream & outStream = std::cout )
inlinevirtual

◆ checkInverseAdjointJacobian_1_new()

template<class Real>
virtual Real ROL::Constraint_TimeSimOpt< Real >::checkInverseAdjointJacobian_1_new ( const ROL::Vector< Real > & c,
const ROL::Vector< Real > & u_new,
const ROL::Vector< Real > & u_old,
const ROL::Vector< Real > & z,
const ROL::Vector< Real > & v_new,
const bool printToStream = true,
std::ostream & outStream = std::cout )
inlinevirtual

◆ checkApplyJacobian_1_new() [1/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_TimeSimOpt< Real >::checkApplyJacobian_1_new ( const Vector< Real > & u_new,
const Vector< Real > & u_old,
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

◆ checkApplyJacobian_1_new() [2/2]

template<class Real>
std::vector< std::vector< Real > > ROL::Constraint_TimeSimOpt< Real >::checkApplyJacobian_1_new ( const Vector< Real > & u_new,
const Vector< Real > & u_old,
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

Member Data Documentation

◆ workspace_


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