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

#include <ODEConstraint_TimeSimOpt.hpp>

+ Inheritance diagram for ODE_Constraint< Real >:

Public Member Functions

 ODE_Constraint (double dt, double omega)
 
virtual void value (ROL::Vector< Real > &c, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 Evaluate the constraint operator \(c:\mathcal{U_o}\times\mathcal{U_n}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\). More...
 
virtual void solve (ROL::Vector< Real > &c, const ROL::Vector< Real > &u_old, ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyJacobian_1_old (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v_old, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyJacobian_1_new (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v_new, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyInverseJacobian_1_new (ROL::Vector< Real > &ijv, const ROL::Vector< Real > &v_new, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyJacobian_2 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v_new, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyAdjointJacobian_1_old (ROL::Vector< Real > &ajv_old, const ROL::Vector< Real > &dualv, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyAdjointJacobian_1_new (ROL::Vector< Real > &ajv_new, const ROL::Vector< Real > &dualv, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyAdjointJacobian_2_time (ROL::Vector< Real > &ajv, const ROL::Vector< Real > &dualv, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyInverseAdjointJacobian_1_new (ROL::Vector< Real > &iajv, const ROL::Vector< Real > &v_new, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyAdjointHessian_11_old (ROL::Vector< Real > &ahwv_old, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v_old, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
virtual void applyAdjointHessian_11_new (ROL::Vector< Real > &ahwv_new, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v_new, const ROL::Vector< Real > &u_old, const ROL::Vector< Real > &u_new, const ROL::Vector< Real > &z, Real &tol) override
 
- Public Member Functions inherited from ROL::Constraint_TimeSimOpt< Real >
 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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual void update (const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) override
 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 > &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 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 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 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 applyInverseJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) overridefinal
 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, 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 primary interface. 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 applyInverseAdjointJacobian_1 (Vector< Real > &iajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) overridefinal
 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 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...
 
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)
 
- Public Member Functions inherited from ROL::ROL::Constraint_SimOpt< Real >
 Constraint_SimOpt ()
 
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 setSolveParameters (Teuchos::ParameterList &parlist)
 Set solve parameters. More...
 
virtual void applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualv, Real &tol)
 Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^* \in L(\mathcal{C}^*, \mathcal{U}^*)\), to the vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual void applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualv, Real &tol)
 Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_z(u,z)^* \in L(\mathcal{C}^*, \mathcal{Z}^*)\), to vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. More...
 
virtual std::vector< RealsolveAugmentedSystem (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 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

typedef ROL::StdVector< RealVectorType
 

Private Member Functions

const std::vector< Real > & getVector (const ROL::Vector< Real > &x)
 
std::vector< Real > & getVector (ROL::Vector< Real > &x)
 

Private Attributes

Real timestep_
 
Real omega_
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::Constraint_TimeSimOpt< Real >
VectorWorkspace< Real > & getVectorWorkspace () const
 
- Protected Member Functions inherited from ROL::Constraint< Real >
const std::vector< RealgetParameter (void) const
 

Detailed Description

template<typename Real>
class ODE_Constraint< Real >

Definition at line 59 of file ODEConstraint_TimeSimOpt.hpp.

Member Typedef Documentation

template<typename Real >
typedef ROL::StdVector<Real> ODE_Constraint< Real >::VectorType
private

Definition at line 61 of file ODEConstraint_TimeSimOpt.hpp.

Constructor & Destructor Documentation

template<typename Real >
ODE_Constraint< Real >::ODE_Constraint ( double  dt,
double  omega 
)
inline

Definition at line 76 of file ODEConstraint_TimeSimOpt.hpp.

Member Function Documentation

template<typename Real >
const std::vector<Real>& ODE_Constraint< Real >::getVector ( const ROL::Vector< Real > &  x)
inlineprivate
template<typename Real >
std::vector<Real>& ODE_Constraint< Real >::getVector ( ROL::Vector< Real > &  x)
inlineprivate

Definition at line 67 of file ODEConstraint_TimeSimOpt.hpp.

References ODE_Constraint< Real >::getVector().

template<typename Real >
virtual void ODE_Constraint< Real >::value ( ROL::Vector< Real > &  c,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual

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


Implements ROL::Constraint_TimeSimOpt< Real >.

Definition at line 78 of file ODEConstraint_TimeSimOpt.hpp.

References ODE_Constraint< Real >::getVector(), ODE_Constraint< Real >::omega_, and ODE_Constraint< Real >::timestep_.

Referenced by ODE_Constraint< Real >::solve().

template<typename Real >
virtual void ODE_Constraint< Real >::solve ( ROL::Vector< Real > &  c,
const ROL::Vector< Real > &  u_old,
ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyJacobian_1_old ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v_old,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyJacobian_1_new ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v_new,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyInverseJacobian_1_new ( ROL::Vector< Real > &  ijv,
const ROL::Vector< Real > &  v_new,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyJacobian_2 ( ROL::Vector< Real > &  jv,
const ROL::Vector< Real > &  v_new,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyAdjointJacobian_1_old ( ROL::Vector< Real > &  ajv_old,
const ROL::Vector< Real > &  dualv,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyAdjointJacobian_1_new ( ROL::Vector< Real > &  ajv_new,
const ROL::Vector< Real > &  dualv,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyAdjointJacobian_2_time ( ROL::Vector< Real > &  ajv,
const ROL::Vector< Real > &  dualv,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyInverseAdjointJacobian_1_new ( ROL::Vector< Real > &  iajv,
const ROL::Vector< Real > &  v_new,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyAdjointHessian_11_old ( ROL::Vector< Real > &  ahwv_old,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v_old,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual
template<typename Real >
virtual void ODE_Constraint< Real >::applyAdjointHessian_11_new ( ROL::Vector< Real > &  ahwv_new,
const ROL::Vector< Real > &  w,
const ROL::Vector< Real > &  v_new,
const ROL::Vector< Real > &  u_old,
const ROL::Vector< Real > &  u_new,
const ROL::Vector< Real > &  z,
Real tol 
)
inlineoverridevirtual

Member Data Documentation

template<typename Real >
Real ODE_Constraint< Real >::timestep_
private
template<typename Real >
Real ODE_Constraint< Real >::omega_
private

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