ROL
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 ()
 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 the new'' 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 53 of file ROL_DynamicConstraint.hpp.

Member Typedef Documentation

◆ V

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

Definition at line 86 of file ROL_DynamicConstraint.hpp.

◆ PV

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

Definition at line 87 of file ROL_DynamicConstraint.hpp.

◆ TS

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

Definition at line 88 of file ROL_DynamicConstraint.hpp.

Constructor & Destructor Documentation

◆ ~DynamicConstraint()

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

Definition at line 90 of file ROL_DynamicConstraint.hpp.

◆ DynamicConstraint() [1/2]

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

Definition at line 92 of file ROL_DynamicConstraint.hpp.

References DynamicConstraint().

Referenced by DynamicConstraint().

◆ DynamicConstraint() [2/2]

Member Function Documentation

◆ update()

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

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

References atol_, decr_, DEFAULT_atol_, DEFAULT_decr_, DEFAULT_factor_, DEFAULT_maxit_, DEFAULT_print_, DEFAULT_rtol_, DEFAULT_solverType_, DEFAULT_stol_, DEFAULT_zero_, factor_, maxit_, print_, rtol_, solverType_, stol_, and 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()

◆ applyAdjointJacobian_un()

◆ applyAdjointJacobian_z()

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

Referenced by DynamicConstraint(), and solve().

◆ jv_

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

Definition at line 57 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and solve().

◆ DEFAULT_atol_

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

Definition at line 60 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_rtol_

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

Definition at line 61 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_stol_

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

Definition at line 62 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_factor_

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

Definition at line 63 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_decr_

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

Definition at line 64 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_maxit_

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

Definition at line 65 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_print_

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

Definition at line 66 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_zero_

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

Definition at line 67 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ DEFAULT_solverType_

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

Definition at line 68 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and setSolveParameters().

◆ atol_

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

Definition at line 71 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ rtol_

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

Definition at line 72 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ stol_

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

Definition at line 73 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ factor_

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

Definition at line 74 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ decr_

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

Definition at line 75 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ maxit_

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

Definition at line 76 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ print_

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

Definition at line 77 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ zero_

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

Definition at line 78 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ solverType_

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

Definition at line 79 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), setSolveParameters(), and solve().

◆ firstSolve_

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

Definition at line 82 of file ROL_DynamicConstraint.hpp.

Referenced by DynamicConstraint(), and solve().


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