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 ()
 
 unew_ (nullPtr)
 
 jv_ (nullPtr)
 
 DEFAULT_atol_ (1e-4 *std::sqrt(ROL_EPSILON< Real >()))
 
 DEFAULT_rtol_ (1e0)
 
 DEFAULT_stol_ (std::sqrt(ROL_EPSILON< Real >()))
 
 DEFAULT_factor_ (0.5)
 
 DEFAULT_decr_ (1e-4)
 
 DEFAULT_maxit_ (500)
 
 DEFAULT_print_ (false)
 
 DEFAULT_zero_ (false)
 
 DEFAULT_solverType_ (0)
 
 atol_ (DEFAULT_atol_)
 
 rtol_ (DEFAULT_rtol_)
 
 stol_ (DEFAULT_stol_)
 
 factor_ (DEFAULT_factor_)
 
 decr_ (DEFAULT_decr_)
 
 maxit_ (DEFAULT_maxit_)
 
 print_ (DEFAULT_print_)
 
 zero_ (DEFAULT_zero_)
 
 solverType_ (DEFAULT_solverType_)
 
 firstSolve_ (true)
 
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. More...
 
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 \form#134 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 24 of file ROL_DynamicConstraint.hpp.

Member Typedef Documentation

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

Definition at line 86 of file ROL_DynamicConstraint.hpp.

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

Definition at line 87 of file ROL_DynamicConstraint.hpp.

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

Definition at line 88 of file ROL_DynamicConstraint.hpp.

Constructor & Destructor Documentation

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

Definition at line 90 of file ROL_DynamicConstraint.hpp.

template<typename Real>
ROL::DynamicConstraint< Real >::DynamicConstraint ( )
inline

Definition at line 92 of file ROL_DynamicConstraint.hpp.

Member Function Documentation

template<typename Real>
ROL::DynamicConstraint< Real >::unew_ ( nullPtr  )
template<typename Real>
ROL::DynamicConstraint< Real >::jv_ ( nullPtr  )
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_atol_ ( 1e-4 *std::  sqrtROL_EPSILON< Real >())
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_rtol_ ( 1e0  )
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_stol_ ( std::  sqrtROL_EPSILON< Real >())
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_factor_ ( 0.  5)
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_decr_ ( 1e-  4)
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_maxit_ ( 500  )
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_print_ ( false  )
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_zero_ ( false  )
template<typename Real>
ROL::DynamicConstraint< Real >::DEFAULT_solverType_ ( )
template<typename Real>
ROL::DynamicConstraint< Real >::atol_ ( DEFAULT_atol_  )
template<typename Real>
ROL::DynamicConstraint< Real >::rtol_ ( DEFAULT_rtol_  )
template<typename Real>
ROL::DynamicConstraint< Real >::stol_ ( DEFAULT_stol_  )
template<typename Real>
ROL::DynamicConstraint< Real >::factor_ ( DEFAULT_factor_  )
template<typename Real>
ROL::DynamicConstraint< Real >::decr_ ( DEFAULT_decr_  )
template<typename Real>
ROL::DynamicConstraint< Real >::maxit_ ( DEFAULT_maxit_  )
template<typename Real>
ROL::DynamicConstraint< Real >::print_ ( DEFAULT_print_  )
template<typename Real>
ROL::DynamicConstraint< Real >::zero_ ( DEFAULT_zero_  )
template<typename Real>
ROL::DynamicConstraint< Real >::solverType_ ( DEFAULT_solverType_  )
template<typename Real>
ROL::DynamicConstraint< Real >::firstSolve_ ( true  )
inline

Definition at line 116 of file ROL_DynamicConstraint.hpp.

template<typename Real>
virtual void ROL::DynamicConstraint< Real >::update ( const V uo,
const V un,
const V z,
const TS ts 
)
inlinevirtual
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
template<typename Real>
virtual void ROL::DynamicConstraint< Real >::solve ( V c,
const V uo,
V un,
const V z,
const TS ts 
)
inlinevirtual
template<typename Real>
virtual void ROL::DynamicConstraint< Real >::setSolveParameters ( ParameterList &  parlist)
inlinevirtual

Set solve parameters.

Parameters
[in]parlistParameterList 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 251 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_.

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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

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

Definition at line 56 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 57 of file ROL_DynamicConstraint.hpp.

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

template<typename Real>
const Real ROL::DynamicConstraint< Real >::DEFAULT_atol_
private
template<typename Real>
const Real ROL::DynamicConstraint< Real >::DEFAULT_rtol_
private
template<typename Real>
const Real ROL::DynamicConstraint< Real >::DEFAULT_stol_
private
template<typename Real>
const Real ROL::DynamicConstraint< Real >::DEFAULT_factor_
private
template<typename Real>
const Real ROL::DynamicConstraint< Real >::DEFAULT_decr_
private
template<typename Real>
const int ROL::DynamicConstraint< Real >::DEFAULT_maxit_
private
template<typename Real>
const bool ROL::DynamicConstraint< Real >::DEFAULT_print_
private
template<typename Real>
const bool ROL::DynamicConstraint< Real >::DEFAULT_zero_
private
template<typename Real>
const int ROL::DynamicConstraint< Real >::DEFAULT_solverType_
private
template<typename Real>
Real ROL::DynamicConstraint< Real >::atol_
private
template<typename Real>
Real ROL::DynamicConstraint< Real >::rtol_
private
template<typename Real>
Real ROL::DynamicConstraint< Real >::stol_
private
template<typename Real>
Real ROL::DynamicConstraint< Real >::factor_
private
template<typename Real>
Real ROL::DynamicConstraint< Real >::decr_
private
template<typename Real>
int ROL::DynamicConstraint< Real >::maxit_
private
template<typename Real>
bool ROL::DynamicConstraint< Real >::print_
private
template<typename Real>
bool ROL::DynamicConstraint< Real >::zero_
private
template<typename Real>
int ROL::DynamicConstraint< Real >::solverType_
private
template<typename Real>
bool ROL::DynamicConstraint< Real >::firstSolve_
private

Definition at line 82 of file ROL_DynamicConstraint.hpp.

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


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