ROL
ROL::DynamicFunction< Real > Class Template Reference

Provides update interface, casting and vector management to DynamicConstraint and DynamicObjective. More...

#include <ROL_DynamicFunction.hpp>

Inheritance diagram for ROL::DynamicFunction< Real >:

Public Types

using V = Vector<Real>
using PV = PartitionedVector<Real>
using TS = TimeStamp<Real>

Public Member Functions

 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)

Protected Member Functions

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

Private Member Functions

template<typename First>
void add_terms (const First &first)
template<typename First, typename... Rest>
void add_terms (const First &first, const Rest &... rest)

Private Attributes

VectorWorkspace< Real > workspace_
std::vector< std::string > zero_deriv_terms_

Detailed Description

template<typename Real>
class ROL::DynamicFunction< Real >

Provides update interface, casting and vector management to DynamicConstraint and DynamicObjective.

Allowed strings to indicate terms with zero derivatives: {"uo","un","z","uo_uo","uo_un","uo_z","un_uo","un_un","un_z","z_uo","z_un", "z_z"} Note that is "X_Y" is specified, "Y_X" will be added automatically.

Definition at line 33 of file ROL_DynamicFunction.hpp.

Member Typedef Documentation

◆ V

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

Definition at line 36 of file ROL_DynamicFunction.hpp.

◆ PV

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

Definition at line 37 of file ROL_DynamicFunction.hpp.

◆ TS

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

Definition at line 38 of file ROL_DynamicFunction.hpp.

Constructor & Destructor Documentation

◆ DynamicFunction()

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

◆ ~DynamicFunction()

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

Definition at line 55 of file ROL_DynamicFunction.hpp.

Member Function Documentation

◆ update_uo()

template<typename Real>
virtual void ROL::DynamicFunction< Real >::update_uo ( const V & x,
const TS & ts )
inlinevirtual

◆ update_un()

template<typename Real>
virtual void ROL::DynamicFunction< Real >::update_un ( const V & x,
const TS & ts )
inlinevirtual

◆ update_z()

template<typename Real>
virtual void ROL::DynamicFunction< Real >::update_z ( const V & x,
const TS & ts )
inlinevirtual

◆ is_zero_derivative()

template<typename Real>
bool ROL::DynamicFunction< Real >::is_zero_derivative ( const std::string & key)
inline

Definition at line 66 of file ROL_DynamicFunction.hpp.

References zero_deriv_terms_.

Referenced by add_terms(), and add_terms().

◆ getVectorWorkspace()

template<typename Real>
VectorWorkspace< Real > & ROL::DynamicFunction< Real >::getVectorWorkspace ( ) const
protected

Definition at line 19 of file ROL_DynamicFunctionDef.hpp.

References workspace_.

◆ partition() [1/2]

template<typename Real>
PartitionedVector< Real > & ROL::DynamicFunction< Real >::partition ( V & x) const
protected

Definition at line 23 of file ROL_DynamicFunctionDef.hpp.

◆ partition() [2/2]

template<typename Real>
const PartitionedVector< Real > & ROL::DynamicFunction< Real >::partition ( const V & x) const
protected

Definition at line 29 of file ROL_DynamicFunctionDef.hpp.

◆ getNew() [1/2]

template<typename Real>
Vector< Real > & ROL::DynamicFunction< Real >::getNew ( V & x) const
protected

Definition at line 35 of file ROL_DynamicFunctionDef.hpp.

References ROL::partition().

◆ getNew() [2/2]

template<typename Real>
const Vector< Real > & ROL::DynamicFunction< Real >::getNew ( const V & x) const
protected

Definition at line 41 of file ROL_DynamicFunctionDef.hpp.

References ROL::partition().

◆ getOld() [1/2]

template<typename Real>
Vector< Real > & ROL::DynamicFunction< Real >::getOld ( V & x) const
protected

Definition at line 47 of file ROL_DynamicFunctionDef.hpp.

References ROL::partition().

◆ getOld() [2/2]

template<typename Real>
const Vector< Real > & ROL::DynamicFunction< Real >::getOld ( const V & x) const
protected

Definition at line 53 of file ROL_DynamicFunctionDef.hpp.

References ROL::partition().

◆ add_terms() [1/2]

template<typename Real>
template<typename First>
void ROL::DynamicFunction< Real >::add_terms ( const First & first)
inlineprivate

Definition at line 92 of file ROL_DynamicFunction.hpp.

References is_zero_derivative(), and zero_deriv_terms_.

Referenced by add_terms().

◆ add_terms() [2/2]

template<typename Real>
template<typename First, typename... Rest>
void ROL::DynamicFunction< Real >::add_terms ( const First & first,
const Rest &... rest )
inlineprivate

Definition at line 98 of file ROL_DynamicFunction.hpp.

References add_terms(), is_zero_derivative(), and zero_deriv_terms_.

Member Data Documentation

◆ workspace_

template<typename Real>
VectorWorkspace<Real> ROL::DynamicFunction< Real >::workspace_
mutableprivate

Definition at line 88 of file ROL_DynamicFunction.hpp.

Referenced by getVectorWorkspace().

◆ zero_deriv_terms_

template<typename Real>
std::vector<std::string> ROL::DynamicFunction< Real >::zero_deriv_terms_
private

Definition at line 89 of file ROL_DynamicFunction.hpp.

Referenced by add_terms(), add_terms(), and is_zero_derivative().


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