ROL
Public Types | Public Member Functions | Private Attributes | List of all members
ROL::DynamicConstraint< Real > Class Template Referenceabstract

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

#include <ROL_DynamicConstraint.hpp>

+ Inheritance diagram for ROL::DynamicConstraint< Real >:

Public Types

using V = Vector< Real >
 
using PV = PartitionedVector< Real >
 
using TS = TimeStamp< Real >
 
- Public Types inherited from ROL::DynamicFunction< Real >
using V = Vector< Real >
 
using PV = PartitionedVector< Real >
 
using TS = TimeStamp< Real >
 

Public Member Functions

virtual ~DynamicConstraint ()
 
 DynamicConstraint (std::initializer_list< std::string > zero_deriv_terms={})
 
virtual void update (const V &uo, const V &un, const V &z, const TS &ts)
 
virtual void value (V &c, const V &uo, const V &un, const V &z, const TS &ts) const =0
 
virtual void solve (V &c, const V &uo, V &un, const V &z, const TS &ts)
 
virtual void setSolveParameters (ParameterList &parlist)
 Set solve parameters.
 
virtual void applyJacobian_uo (V &jv, const V &vo, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyJacobian_un (V &jv, const V &vn, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyJacobian_z (V &jv, const V &vz, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointJacobian_uo (V &ajv, const V &dualv, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointJacobian_un (V &ajv, const V &dualv, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointJacobian_z (V &ajv, const V &dualv, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyInverseJacobian_un (V &ijv, const V &vn, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyInverseAdjointJacobian_un (V &iajv, const V &vn, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_un_un (V &ahwv, const V &wn, const V &vn, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_un_uo (V &ahwv, const V &w, const V &vn, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_un_z (V &ahwv, const V &w, const V &vn, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_uo_un (V &ahwv, const V &w, const V &vo, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_uo_uo (V &ahwv, const V &w, const V &v, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_uo_z (V &ahwv, const V &w, const V &vo, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_z_un (V &ahwv, const V &w, const V &vz, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_z_uo (V &ahwv, const V &w, const V &vz, const V &uo, const V &un, const V &z, const TS &ts) const
 
virtual void applyAdjointHessian_z_z (V &ahwv, const V &w, const V &vz, const V &uo, const V &un, const V &z, const TS &ts) const
 
- Public Member Functions inherited from ROL::DynamicFunction< Real >
 DynamicFunction (std::initializer_list< std::string > zero_deriv_terms={})
 
virtual ~DynamicFunction ()
 
virtual void update_uo (const V &x, const TS &ts)
 
virtual void update_un (const V &x, const TS &ts)
 
virtual void update_z (const V &x, const TS &ts)
 
bool is_zero_derivative (const std::string &key)
 

Private Attributes

Ptr< Vector< Real > > unew_
 
Ptr< Vector< Real > > jv_
 
const Real DEFAULT_atol_
 
const Real DEFAULT_rtol_
 
const Real DEFAULT_stol_
 
const Real DEFAULT_factor_
 
const Real DEFAULT_decr_
 
const int DEFAULT_maxit_
 
const bool DEFAULT_print_
 
const bool DEFAULT_zero_
 
const int DEFAULT_solverType_
 
Real atol_
 
Real rtol_
 
Real stol_
 
Real factor_
 
Real decr_
 
int maxit_
 
bool print_
 
bool zero_
 
int solverType_
 
bool firstSolve_
 

Additional Inherited Members

- Protected Member Functions inherited from ROL::DynamicFunction< Real >
VectorWorkspace< Real > & getVectorWorkspace () const
 
PVpartition (V &x) const
 
const PVpartition (const V &x) const
 
VgetNew (V &x) const
 
const VgetNew (const V &x) const
 
VgetOld (V &x) const
 
const VgetOld (const V &x) const
 

Detailed Description

template<typename Real>
class ROL::DynamicConstraint< 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 thenew'' variables that can be determined by satisfying constraints in the form

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

Definition at line 81 of file ROL_DynamicConstraint.hpp.

Member Typedef Documentation

◆ V

template<typename Real >
using ROL::DynamicConstraint< Real >::V = Vector<Real>

Definition at line 114 of file ROL_DynamicConstraint.hpp.

◆ PV

template<typename Real >
using ROL::DynamicConstraint< Real >::PV = PartitionedVector<Real>

Definition at line 115 of file ROL_DynamicConstraint.hpp.

◆ TS

template<typename Real >
using ROL::DynamicConstraint< Real >::TS = TimeStamp<Real>

Definition at line 116 of file ROL_DynamicConstraint.hpp.

Constructor & Destructor Documentation

◆ ~DynamicConstraint()

template<typename Real >
virtual ROL::DynamicConstraint< Real >::~DynamicConstraint ( )
inlinevirtual

Definition at line 118 of file ROL_DynamicConstraint.hpp.

◆ DynamicConstraint()

template<typename Real >
ROL::DynamicConstraint< Real >::DynamicConstraint ( std::initializer_list< std::string >  zero_deriv_terms = {})
inline

Definition at line 120 of file ROL_DynamicConstraint.hpp.

Member Function Documentation

◆ update()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::update ( const V uo,
const V un,
const V z,
const TS ts 
)
inlinevirtual

◆ value()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::value ( V c,
const V uo,
const V un,
const V z,
const TS ts 
) const
pure virtual

◆ solve()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::solve ( V c,
const V uo,
V un,
const V z,
const TS ts 
)
inlinevirtual

◆ setSolveParameters()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::setSolveParameters ( ParameterList &  parlist)
inlinevirtual

Set solve parameters.

   @param[in]       parlist   ParameterList containing solve parameters

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

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

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

   ---

Definition at line 288 of file ROL_DynamicConstraint.hpp.

References ROL::DynamicConstraint< Real >::atol_, ROL::DynamicConstraint< Real >::decr_, ROL::DynamicConstraint< Real >::DEFAULT_atol_, ROL::DynamicConstraint< Real >::DEFAULT_decr_, ROL::DynamicConstraint< Real >::DEFAULT_factor_, ROL::DynamicConstraint< Real >::DEFAULT_maxit_, ROL::DynamicConstraint< Real >::DEFAULT_print_, ROL::DynamicConstraint< Real >::DEFAULT_rtol_, ROL::DynamicConstraint< Real >::DEFAULT_solverType_, ROL::DynamicConstraint< Real >::DEFAULT_stol_, ROL::DynamicConstraint< Real >::DEFAULT_zero_, ROL::DynamicConstraint< Real >::factor_, ROL::DynamicConstraint< Real >::maxit_, ROL::DynamicConstraint< Real >::print_, ROL::DynamicConstraint< Real >::rtol_, ROL::DynamicConstraint< Real >::solverType_, ROL::DynamicConstraint< Real >::stol_, and ROL::DynamicConstraint< Real >::zero_.

◆ applyJacobian_uo()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyJacobian_uo ( V jv,
const V vo,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyJacobian_un()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyJacobian_un ( V jv,
const V vn,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyJacobian_z()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyJacobian_z ( V jv,
const V vz,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointJacobian_uo()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointJacobian_uo ( V ajv,
const V dualv,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointJacobian_un()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointJacobian_un ( V ajv,
const V dualv,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointJacobian_z()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointJacobian_z ( V ajv,
const V dualv,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyInverseJacobian_un()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyInverseJacobian_un ( V ijv,
const V vn,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyInverseAdjointJacobian_un()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyInverseAdjointJacobian_un ( V iajv,
const V vn,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_un_un()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_un_un ( V ahwv,
const V wn,
const V vn,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_un_uo()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_un_uo ( V ahwv,
const V w,
const V vn,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_un_z()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_un_z ( V ahwv,
const V w,
const V vn,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_uo_un()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_uo_un ( V ahwv,
const V w,
const V vo,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_uo_uo()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_uo_uo ( V ahwv,
const V w,
const V v,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_uo_z()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_uo_z ( V ahwv,
const V w,
const V vo,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_z_un()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_z_un ( V ahwv,
const V w,
const V vz,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_z_uo()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_z_uo ( V ahwv,
const V w,
const V vz,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

◆ applyAdjointHessian_z_z()

template<typename Real >
virtual void ROL::DynamicConstraint< Real >::applyAdjointHessian_z_z ( V ahwv,
const V w,
const V vz,
const V uo,
const V un,
const V z,
const TS ts 
) const
inlinevirtual

Member Data Documentation

◆ unew_

template<typename Real >
Ptr<Vector<Real> > ROL::DynamicConstraint< Real >::unew_
private

Definition at line 84 of file ROL_DynamicConstraint.hpp.

Referenced by ROL::DynamicConstraint< Real >::solve().

◆ jv_

template<typename Real >
Ptr<Vector<Real> > ROL::DynamicConstraint< Real >::jv_
private

Definition at line 85 of file ROL_DynamicConstraint.hpp.

Referenced by ROL::DynamicConstraint< Real >::solve().

◆ DEFAULT_atol_

template<typename Real >
const Real ROL::DynamicConstraint< Real >::DEFAULT_atol_
private

◆ DEFAULT_rtol_

template<typename Real >
const Real ROL::DynamicConstraint< Real >::DEFAULT_rtol_
private

◆ DEFAULT_stol_

template<typename Real >
const Real ROL::DynamicConstraint< Real >::DEFAULT_stol_
private

◆ DEFAULT_factor_

template<typename Real >
const Real ROL::DynamicConstraint< Real >::DEFAULT_factor_
private

◆ DEFAULT_decr_

template<typename Real >
const Real ROL::DynamicConstraint< Real >::DEFAULT_decr_
private

◆ DEFAULT_maxit_

template<typename Real >
const int ROL::DynamicConstraint< Real >::DEFAULT_maxit_
private

◆ DEFAULT_print_

template<typename Real >
const bool ROL::DynamicConstraint< Real >::DEFAULT_print_
private

◆ DEFAULT_zero_

template<typename Real >
const bool ROL::DynamicConstraint< Real >::DEFAULT_zero_
private

◆ DEFAULT_solverType_

template<typename Real >
const int ROL::DynamicConstraint< Real >::DEFAULT_solverType_
private

◆ atol_

template<typename Real >
Real ROL::DynamicConstraint< Real >::atol_
private

◆ rtol_

template<typename Real >
Real ROL::DynamicConstraint< Real >::rtol_
private

◆ stol_

template<typename Real >
Real ROL::DynamicConstraint< Real >::stol_
private

◆ factor_

template<typename Real >
Real ROL::DynamicConstraint< Real >::factor_
private

◆ decr_

template<typename Real >
Real ROL::DynamicConstraint< Real >::decr_
private

◆ maxit_

template<typename Real >
int ROL::DynamicConstraint< Real >::maxit_
private

◆ print_

template<typename Real >
bool ROL::DynamicConstraint< Real >::print_
private

◆ zero_

template<typename Real >
bool ROL::DynamicConstraint< Real >::zero_
private

◆ solverType_

template<typename Real >
int ROL::DynamicConstraint< Real >::solverType_
private

◆ firstSolve_

template<typename Real >
bool ROL::DynamicConstraint< Real >::firstSolve_
private

Definition at line 110 of file ROL_DynamicConstraint.hpp.

Referenced by ROL::DynamicConstraint< Real >::solve().


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