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. 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#118 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

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

Definition at line 114 of file ROL_DynamicConstraint.hpp.

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

Definition at line 115 of file ROL_DynamicConstraint.hpp.

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

Definition at line 116 of file ROL_DynamicConstraint.hpp.

Constructor & Destructor Documentation

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

Definition at line 118 of file ROL_DynamicConstraint.hpp.

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

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

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

Definition at line 303 of file ROL_DynamicConstraint.hpp.

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

Definition at line 307 of file ROL_DynamicConstraint.hpp.

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

Definition at line 311 of file ROL_DynamicConstraint.hpp.

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

Definition at line 317 of file ROL_DynamicConstraint.hpp.

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

Definition at line 321 of file ROL_DynamicConstraint.hpp.

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

Definition at line 325 of file ROL_DynamicConstraint.hpp.

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

Definition at line 331 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 335 of file ROL_DynamicConstraint.hpp.

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

Definition at line 341 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 347 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 353 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 359 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 365 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 371 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 377 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 383 of file ROL_DynamicConstraint.hpp.

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

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

Definition at line 389 of file ROL_DynamicConstraint.hpp.

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

Member Data Documentation

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().

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().

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 110 of file ROL_DynamicConstraint.hpp.

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


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