ROL
ROL::DynamicTrackingFEMObjective< Real > Class Template Reference

Defines the time-local contribution to a quadratic tracking objective. More...

#include <ROL_DynamicTrackingFEMObjective.hpp>

Inheritance diagram for ROL::DynamicTrackingFEMObjective< Real >:

Public Types

using V = Vector<Real>
using TS = TimeStamp<Real>
using size_type = typename PartitionedVector<Real>::size_type
Public Types inherited from ROL::DynamicObjective< Real >
using V = Vector<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

 DynamicTrackingFEMObjective (const Ptr< PartitionedVector< Real > > &target, Real alpha=0.0)
virtual ~DynamicTrackingFEMObjective ()
virtual Real value (const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void gradient_uo (V &g, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void gradient_un (V &g, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void gradient_z (V &g, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_uo_uo (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_uo_un (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_uo_z (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_un_uo (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_un_un (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_un_z (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_z_uo (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_z_un (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
virtual void hessVec_z_z (V &hv, const V &v, const V &uo, const V &un, const V &z, const TS &timeStamp) const override
Public Member Functions inherited from ROL::DynamicObjective< Real >
 DynamicObjective ()
 DynamicObjective (std::initializer_list< std::string > zero_deriv_terms)
virtual ~DynamicObjective ()
virtual void update (const V &uo, const V &un, const V &z, const TS &timeStamp)
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< PartitionedVector< Real > > target_
size_type Nt_
Real alpha_
VectorWorkspace< Real > workspace_

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::DynamicTrackingFEMObjective< Real >

Defines the time-local contribution to a quadratic tracking objective.

\[ f_k(u,z) = \frac{1}{2} \int\limits_{t_{k-1}}^{t_k} \| u(t)-\tilde u(t)\|^2 + \alpha \|z(t)^2\,\mathrm{d}t \]

Currently approximates the state disparity norm using linear finite elements which couples the old and new state contributions

Definition at line 34 of file ROL_DynamicTrackingFEMObjective.hpp.

Member Typedef Documentation

◆ V

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

Definition at line 37 of file ROL_DynamicTrackingFEMObjective.hpp.

◆ TS

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

Definition at line 38 of file ROL_DynamicTrackingFEMObjective.hpp.

◆ size_type

template<typename Real>
using ROL::DynamicTrackingFEMObjective< Real >::size_type = typename PartitionedVector<Real>::size_type

Definition at line 39 of file ROL_DynamicTrackingFEMObjective.hpp.

Constructor & Destructor Documentation

◆ DynamicTrackingFEMObjective()

template<typename Real>
ROL::DynamicTrackingFEMObjective< Real >::DynamicTrackingFEMObjective ( const Ptr< PartitionedVector< Real > > & target,
Real alpha = 0.0 )
inline

Definition at line 52 of file ROL_DynamicTrackingFEMObjective.hpp.

References alpha_, Nt_, and target_.

◆ ~DynamicTrackingFEMObjective()

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

Definition at line 55 of file ROL_DynamicTrackingFEMObjective.hpp.

Member Function Documentation

◆ value()

template<typename Real>
virtual Real ROL::DynamicTrackingFEMObjective< Real >::value ( const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

◆ gradient_uo()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::gradient_uo ( V & g,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

◆ gradient_un()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::gradient_un ( V & g,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

◆ gradient_z()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::gradient_z ( V & g,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

◆ hessVec_uo_uo()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_uo_uo ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

◆ hessVec_uo_un()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_uo_un ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

Reimplemented from ROL::DynamicObjective< Real >.

Definition at line 130 of file ROL_DynamicTrackingFEMObjective.hpp.

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

◆ hessVec_uo_z()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_uo_z ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

Reimplemented from ROL::DynamicObjective< Real >.

Definition at line 135 of file ROL_DynamicTrackingFEMObjective.hpp.

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

◆ hessVec_un_uo()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_un_uo ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

Reimplemented from ROL::DynamicObjective< Real >.

Definition at line 140 of file ROL_DynamicTrackingFEMObjective.hpp.

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

◆ hessVec_un_un()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_un_un ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

◆ hessVec_un_z()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_un_z ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

Reimplemented from ROL::DynamicObjective< Real >.

Definition at line 151 of file ROL_DynamicTrackingFEMObjective.hpp.

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

◆ hessVec_z_uo()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_z_uo ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

Reimplemented from ROL::DynamicObjective< Real >.

Definition at line 156 of file ROL_DynamicTrackingFEMObjective.hpp.

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

◆ hessVec_z_un()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_z_un ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

Reimplemented from ROL::DynamicObjective< Real >.

Definition at line 161 of file ROL_DynamicTrackingFEMObjective.hpp.

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

◆ hessVec_z_z()

template<typename Real>
virtual void ROL::DynamicTrackingFEMObjective< Real >::hessVec_z_z ( V & hv,
const V & v,
const V & uo,
const V & un,
const V & z,
const TS & timeStamp ) const
inlineoverridevirtual

Member Data Documentation

◆ target_

template<typename Real>
Ptr<PartitionedVector<Real> > ROL::DynamicTrackingFEMObjective< Real >::target_
private

◆ Nt_

template<typename Real>
size_type ROL::DynamicTrackingFEMObjective< Real >::Nt_
private

Definition at line 45 of file ROL_DynamicTrackingFEMObjective.hpp.

Referenced by DynamicTrackingFEMObjective().

◆ alpha_

template<typename Real>
Real ROL::DynamicTrackingFEMObjective< Real >::alpha_
private

◆ workspace_

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

Definition at line 48 of file ROL_DynamicTrackingFEMObjective.hpp.

Referenced by gradient_uo(), and value().


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