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

#include <ROL_SerialConstraint.hpp>

+ Inheritance diagram for ROL::details::SerialConstraint< Real >:

Public Member Functions

 SerialConstraint (const Ptr< DynamicConstraint< Real >> &con, const Vector< Real > &u_initial, const Ptr< vector< TimeStamp< Real >>> &timeStamp)
 
size_type numTimeSteps (void) const
 
const Vector< Real > & getInitialCondition () const
 
void setInitialCondition (const Vector< Real > &u_initial)
 
bool getSkipInitialCondition () const
 
void setSkipInitialCondition (bool skip)
 
Ptr< vector< TimeStamp< Real > > > getTimeStamp () const
 
void setTimeStamp (const Ptr< vector< TimeStamp< Real >>> &timeStamp)
 
virtual void solve (Vector< Real > &c, Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 Given \(z\), solve \(c(u,z)=0\) for \(u\). More...
 
virtual void value (Vector< Real > &c, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\). More...
 
virtual void applyJacobian_1 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 Apply the partial constraint Jacobian at \((u,z)\), \(c_u(u,z) \in L(\mathcal{U}, \mathcal{C})\), to the vector \(v\). More...
 
virtual void applyInverseJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 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...
 
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) override
 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...
 
void applyInverseAdjointJacobian_1 (Vector< Real > &iajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 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...
 
virtual void applyJacobian_2 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 Apply the partial constraint Jacobian at \((u,z)\), \(c_z(u,z) \in L(\mathcal{Z}, \mathcal{C})\), to the vector \(v\). More...
 
virtual void applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) override
 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...
 
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\). More...
 
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\). More...
 
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\). More...
 
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\). More...
 
- Public Member Functions inherited from ROL::ROL::Constraint_SimOpt< Real >
 Constraint_SimOpt ()
 
virtual void update (const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1)
 Update constraint functions.
x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
virtual void update_1 (const Vector< Real > &u, bool flag=true, int iter=-1)
 Update constraint functions with respect to Sim variable.
x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
virtual void update_2 (const Vector< Real > &z, bool flag=true, int iter=-1)
 Update constraint functions with respect to Opt variable. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
virtual void setSolveParameters (ROL::ParameterList &parlist)
 Set solve parameters. More...
 
virtual void applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, 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...
 
virtual void applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualv, Real &tol)
 Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_z(u,z)^* \in L(\mathcal{C}^*, \mathcal{Z}^*)\), to vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual std::vector< Real > solveAugmentedSystem (Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol)
 Approximately solves the augmented system

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

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

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

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

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

 
virtual void update (const Vector< Real > &x, bool flag=true, int iter=-1)
 Update constraint functions.
x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
virtual void value (Vector< Real > &c, const Vector< Real > &x, Real &tol)
 Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\). More...
 
virtual void applyJacobian (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\). More...
 
virtual void applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\). More...
 
virtual void applyAdjointHessian (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the derivative of the adjoint of the constraint Jacobian at \(x\) to vector \(u\) in direction \(v\), according to \( v \mapsto c''(x)(v,\cdot)^*u \). More...
 
virtual Real checkSolve (const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, const ROL::Vector< Real > &c, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual Real checkAdjointConsistencyJacobian_1 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the primary interface. More...
 
virtual Real checkAdjointConsistencyJacobian_1 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual Real checkAdjointConsistencyJacobian_2 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the primary interface. More...
 
virtual Real checkAdjointConsistencyJacobian_2 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout)
 Check the consistency of the Jacobian and its adjoint. This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual Real checkInverseJacobian_1 (const Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual Real checkInverseAdjointJacobian_1 (const Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout)
 
std::vector< std::vector< Real > > checkApplyJacobian_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyJacobian_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyJacobian_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyJacobian_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \) More...
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \) More...
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \) More...
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 
std::vector< std::vector< Real > > checkApplyAdjointHessian_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 
- Public Member Functions inherited from ROL::Constraint< Real >
virtual ~Constraint (void)
 
 Constraint (void)
 
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...
 
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...
 
virtual void setParameter (const std::vector< Real > &param)
 

Private Types

using PV = PartitionedVector< Real >
 
using size_type = typename std::vector< Real >::size_type
 

Private Member Functions

PVpartition (Vector< Real > &x) const
 
const PVpartition (const Vector< Real > &x) const
 

Private Attributes

Ptr< DynamicConstraint< Real > > con_
 
Ptr< Vector< Real > > u_initial_
 
Ptr< Vector< Real > > u_zero_
 
Ptr< std::vector< TimeStamp< Real > > > timeStamp_
 
VectorWorkspace< Real > workspace_
 
size_type Nt_
 
bool skipInitialCond_
 

Additional Inherited Members

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

Detailed Description

template<typename Real>
class ROL::details::SerialConstraint< Real >

Definition at line 67 of file ROL_SerialConstraint.hpp.

Member Typedef Documentation

◆ PV

template<typename Real >
using ROL::details::SerialConstraint< Real >::PV = PartitionedVector<Real>
private

Definition at line 69 of file ROL_SerialConstraint.hpp.

◆ size_type

template<typename Real >
using ROL::details::SerialConstraint< Real >::size_type = typename std::vector<Real>::size_type
private

Definition at line 70 of file ROL_SerialConstraint.hpp.

Constructor & Destructor Documentation

◆ SerialConstraint()

template<typename Real >
ROL::details::SerialConstraint< Real >::SerialConstraint ( const Ptr< DynamicConstraint< Real >> &  con,
const Vector< Real > &  u_initial,
const Ptr< vector< TimeStamp< Real >>> &  timeStamp 
)
inline

Member Function Documentation

◆ partition() [1/2]

template<typename Real >
PV& ROL::details::SerialConstraint< Real >::partition ( Vector< Real > &  x) const
inlineprivate

◆ partition() [2/2]

template<typename Real >
const PV& ROL::details::SerialConstraint< Real >::partition ( const Vector< Real > &  x) const
inlineprivate

Definition at line 83 of file ROL_SerialConstraint.hpp.

◆ numTimeSteps()

template<typename Real >
size_type ROL::details::SerialConstraint< Real >::numTimeSteps ( void  ) const
inline

◆ getInitialCondition()

template<typename Real >
const Vector<Real>& ROL::details::SerialConstraint< Real >::getInitialCondition ( ) const
inline

◆ setInitialCondition()

template<typename Real >
void ROL::details::SerialConstraint< Real >::setInitialCondition ( const Vector< Real > &  u_initial)
inline

◆ getSkipInitialCondition()

template<typename Real >
bool ROL::details::SerialConstraint< Real >::getSkipInitialCondition ( ) const
inline

◆ setSkipInitialCondition()

template<typename Real >
void ROL::details::SerialConstraint< Real >::setSkipInitialCondition ( bool  skip)
inline

◆ getTimeStamp()

template<typename Real >
Ptr<vector<TimeStamp<Real> > > ROL::details::SerialConstraint< Real >::getTimeStamp ( ) const
inline

◆ setTimeStamp()

template<typename Real >
void ROL::details::SerialConstraint< Real >::setTimeStamp ( const Ptr< vector< TimeStamp< Real >>> &  timeStamp)
inline

◆ solve()

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

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

Parameters
[out]cis the result of evaluating the constraint operator at \((u,z)\); a constraint-space vector
[in,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
   The defualt implementation is Newton's method globalized with a backtracking line search.

   ---

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 110 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, and ROL::details::SerialConstraint< Real >::u_initial_.

◆ value()

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

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

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

   ---

Implements ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 124 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, and ROL::details::SerialConstraint< Real >::u_initial_.

◆ applyJacobian_1()

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

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

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

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 139 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, ROL::details::SerialConstraint< Real >::u_zero_, and ROL::details::SerialConstraint< Real >::workspace_.

◆ applyInverseJacobian_1()

template<typename Real >
virtual void ROL::details::SerialConstraint< Real >::applyInverseJacobian_1 ( Vector< Real > &  ijv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlineoverridevirtual

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

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

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 160 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, ROL::details::SerialConstraint< Real >::u_zero_, and ROL::details::SerialConstraint< Real >::workspace_.

◆ applyAdjointJacobian_1()

template<typename Real >
virtual void ROL::details::SerialConstraint< Real >::applyAdjointJacobian_1 ( Vector< Real > &  ajv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
const Vector< Real > &  dualv,
Real &  tol 
)
inlineoverridevirtual

Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^* \in L(\mathcal{C}^*, \mathcal{U}^*)\), to the vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation.

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

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 181 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, ROL::details::SerialConstraint< Real >::u_zero_, and ROL::details::SerialConstraint< Real >::workspace_.

◆ applyInverseAdjointJacobian_1()

template<typename Real >
void ROL::details::SerialConstraint< Real >::applyInverseAdjointJacobian_1 ( Vector< Real > &  iajv,
const Vector< Real > &  v,
const Vector< Real > &  u,
const Vector< Real > &  z,
Real &  tol 
)
inlineoverridevirtual

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

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

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 200 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, ROL::details::SerialConstraint< Real >::u_zero_, and ROL::details::SerialConstraint< Real >::workspace_.

◆ applyJacobian_2()

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

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

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

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 234 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, and ROL::details::SerialConstraint< Real >::u_zero_.

◆ applyAdjointJacobian_2()

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

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

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

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 248 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, and ROL::details::SerialConstraint< Real >::u_zero_.

◆ applyAdjointHessian_11()

template<typename Real >
virtual void ROL::details::SerialConstraint< 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, \form#217, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{U}\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 263 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::skipInitialCond_, ROL::details::SerialConstraint< Real >::timeStamp_, ROL::details::SerialConstraint< Real >::u_zero_, and ROL::details::SerialConstraint< Real >::workspace_.

◆ applyAdjointHessian_12()

template<typename Real >
virtual void ROL::details::SerialConstraint< 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, \form#221, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{U}\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 297 of file ROL_SerialConstraint.hpp.

◆ applyAdjointHessian_21()

template<typename Real >
virtual void ROL::details::SerialConstraint< 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, \form#224, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}\), and \(\mathsf{ahwv} \in \mathcal{U}^*\).

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 305 of file ROL_SerialConstraint.hpp.

◆ applyAdjointHessian_22()

template<typename Real >
virtual void ROL::details::SerialConstraint< 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, \form#226, where
\(w \in \mathcal{C}^*\), \(v \in \mathcal{Z}\), and \(\mathsf{ahwv} \in \mathcal{Z}^*\).

Reimplemented from ROL::ROL::Constraint_SimOpt< Real >.

Definition at line 312 of file ROL_SerialConstraint.hpp.

References ROL::details::SerialConstraint< Real >::con_, ROL::details::SerialConstraint< Real >::Nt_, ROL::details::SerialConstraint< Real >::partition(), ROL::details::SerialConstraint< Real >::timeStamp_, and ROL::details::SerialConstraint< Real >::u_initial_.

Member Data Documentation

◆ con_

template<typename Real >
Ptr<DynamicConstraint<Real> > ROL::details::SerialConstraint< Real >::con_
private

◆ u_initial_

template<typename Real >
Ptr<Vector<Real> > ROL::details::SerialConstraint< Real >::u_initial_
private

◆ u_zero_

template<typename Real >
Ptr<Vector<Real> > ROL::details::SerialConstraint< Real >::u_zero_
private

◆ timeStamp_

template<typename Real >
Ptr<std::vector<TimeStamp<Real> > > ROL::details::SerialConstraint< Real >::timeStamp_
private

◆ workspace_

template<typename Real >
VectorWorkspace<Real> ROL::details::SerialConstraint< Real >::workspace_
private

◆ Nt_

template<typename Real >
size_type ROL::details::SerialConstraint< Real >::Nt_
private

◆ skipInitialCond_

template<typename Real >
bool ROL::details::SerialConstraint< Real >::skipInitialCond_
private

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