ROL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
L2BoundConstraint< Real > Class Template Reference

#include <example_04.hpp>

+ Inheritance diagram for L2BoundConstraint< Real >:

Public Member Functions

 L2BoundConstraint (std::vector< Real > &l, std::vector< Real > &u, const Teuchos::RCP< BurgersFEM< Real > > &fem, Real scale=1.0)
 
bool isFeasible (const ROL::Vector< Real > &x)
 Check if the vector, v, is feasible. More...
 
void project (ROL::Vector< Real > &x)
 Project optimization variables onto the bounds. More...
 
void pruneLowerActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the lower \(\epsilon\)-active set. More...
 
void pruneUpperActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the upper \(\epsilon\)-active set. More...
 
void pruneActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the \(\epsilon\)-active set. More...
 
void pruneLowerActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the lower \(\epsilon\)-binding set. More...
 
void pruneUpperActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the upper \(\epsilon\)-binding set. More...
 
void pruneActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the \(\epsilon\)-binding set. More...
 
void setVectorToUpperBound (ROL::Vector< Real > &u)
 Set the input vector to the upper bound. More...
 
void setVectorToLowerBound (ROL::Vector< Real > &l)
 Set the input vector to the lower bound. More...
 
 L2BoundConstraint (std::vector< Real > &l, std::vector< Real > &u, const Teuchos::RCP< BurgersFEM< Real > > &fem, Real scale=1.0)
 
bool isFeasible (const ROL::Vector< Real > &x)
 Check if the vector, v, is feasible. More...
 
void project (ROL::Vector< Real > &x)
 Project optimization variables onto the bounds. More...
 
void pruneLowerActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the lower \(\epsilon\)-active set. More...
 
void pruneUpperActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the upper \(\epsilon\)-active set. More...
 
void pruneActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the \(\epsilon\)-active set. More...
 
void pruneLowerActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the lower \(\epsilon\)-binding set. More...
 
void pruneUpperActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the upper \(\epsilon\)-binding set. More...
 
void pruneActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the \(\epsilon\)-binding set. More...
 
void setVectorToUpperBound (ROL::Vector< Real > &u)
 Set the input vector to the upper bound. More...
 
void setVectorToLowerBound (ROL::Vector< Real > &l)
 Set the input vector to the lower bound. More...
 
 L2BoundConstraint (std::vector< Real > &l, std::vector< Real > &u, const Teuchos::RCP< BurgersFEM< Real > > &fem, Real scale=1.0)
 
bool isFeasible (const ROL::Vector< Real > &x)
 Check if the vector, v, is feasible. More...
 
void project (ROL::Vector< Real > &x)
 Project optimization variables onto the bounds. More...
 
void pruneLowerActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the lower \(\epsilon\)-active set. More...
 
void pruneUpperActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the upper \(\epsilon\)-active set. More...
 
void pruneActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the \(\epsilon\)-active set. More...
 
void pruneLowerActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the lower \(\epsilon\)-binding set. More...
 
void pruneUpperActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the upper \(\epsilon\)-binding set. More...
 
void pruneActive (ROL::Vector< Real > &v, const ROL::Vector< Real > &g, const ROL::Vector< Real > &x, Real eps)
 Set variables to zero if they correspond to the \(\epsilon\)-binding set. More...
 
void setVectorToUpperBound (ROL::Vector< Real > &u)
 Set the input vector to the upper bound. More...
 
void setVectorToLowerBound (ROL::Vector< Real > &l)
 Set the input vector to the lower bound. More...
 
- Public Member Functions inherited from ROL::BoundConstraint< Real >
virtual ~BoundConstraint ()
 
 BoundConstraint (void)
 
 BoundConstraint (const Teuchos::RCP< Vector< Real > > &x_lo, const Teuchos::RCP< Vector< Real > > &x_up, Real scale=1.0)
 Default constructor. More...
 
virtual void update (const Vector< Real > &x, bool flag=true, int iter=-1)
 Update bounds. More...
 
void activate (void)
 Turn on bounds. More...
 
void deactivate (void)
 Turn off bounds. More...
 
bool isActivated (void)
 Check if bounds are on. More...
 
void pruneInactive (Vector< Real > &v, const Vector< Real > &x, Real eps=0.0)
 Set variables to zero if they correspond to the \(\epsilon\)-inactive set. More...
 
void pruneLowerInactive (Vector< Real > &v, const Vector< Real > &x, Real eps=0.0)
 
void pruneUpperInactive (Vector< Real > &v, const Vector< Real > &x, Real eps=0.0)
 
void pruneInactive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0.0)
 Set variables to zero if they correspond to the \(\epsilon\)-nonbinding set. More...
 
void pruneLowerInactive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0.0)
 
void pruneUpperInactive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0.0)
 
void computeProjectedGradient (Vector< Real > &g, const Vector< Real > &x)
 Compute projected gradient. More...
 
void computeProjectedStep (Vector< Real > &v, const Vector< Real > &x)
 Compute projected step. More...
 

Private Member Functions

void cast_vector (Teuchos::RCP< std::vector< Real > > &xvec, ROL::Vector< Real > &x) const
 
void cast_const_vector (Teuchos::RCP< const std::vector< Real > > &xvec, const ROL::Vector< Real > &x) const
 
void axpy (std::vector< Real > &out, const Real a, const std::vector< Real > &x, const std::vector< Real > &y) const
 
void projection (std::vector< Real > &x)
 
void cast_vector (Teuchos::RCP< std::vector< Real > > &xvec, ROL::Vector< Real > &x) const
 
void cast_const_vector (Teuchos::RCP< const std::vector< Real > > &xvec, const ROL::Vector< Real > &x) const
 
void axpy (std::vector< Real > &out, const Real a, const std::vector< Real > &x, const std::vector< Real > &y) const
 
void projection (std::vector< Real > &x)
 
void cast_vector (Teuchos::RCP< std::vector< Real > > &xvec, ROL::Vector< Real > &x) const
 
void cast_const_vector (Teuchos::RCP< const std::vector< Real > > &xvec, const ROL::Vector< Real > &x) const
 
void axpy (std::vector< Real > &out, const Real a, const std::vector< Real > &x, const std::vector< Real > &y) const
 
void projection (std::vector< Real > &x)
 

Private Attributes

int dim_
 
std::vector< Real > x_lo_
 
std::vector< Real > x_up_
 
Real min_diff_
 
Real scale_
 
Teuchos::RCP< BurgersFEM< Real > > fem_
 

Detailed Description

template<class Real>
class L2BoundConstraint< Real >

Definition at line 1203 of file example_04.hpp.

Constructor & Destructor Documentation

template<class Real >
L2BoundConstraint< Real >::L2BoundConstraint ( std::vector< Real > &  l,
std::vector< Real > &  u,
const Teuchos::RCP< BurgersFEM< Real > > &  fem,
Real  scale = 1.0 
)
inline

Definition at line 1251 of file example_04.hpp.

template<class Real >
L2BoundConstraint< Real >::L2BoundConstraint ( std::vector< Real > &  l,
std::vector< Real > &  u,
const Teuchos::RCP< BurgersFEM< Real > > &  fem,
Real  scale = 1.0 
)
inline

Definition at line 1314 of file example_06.hpp.

template<class Real >
L2BoundConstraint< Real >::L2BoundConstraint ( std::vector< Real > &  l,
std::vector< Real > &  u,
const Teuchos::RCP< BurgersFEM< Real > > &  fem,
Real  scale = 1.0 
)
inline

Definition at line 1330 of file example_07.hpp.

Member Function Documentation

template<class Real >
void L2BoundConstraint< Real >::cast_vector ( Teuchos::RCP< std::vector< Real > > &  xvec,
ROL::Vector< Real > &  x 
) const
inlineprivate

Definition at line 1212 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::cast_const_vector ( Teuchos::RCP< const std::vector< Real > > &  xvec,
const ROL::Vector< Real > &  x 
) const
inlineprivate

Definition at line 1224 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::axpy ( std::vector< Real > &  out,
const Real  a,
const std::vector< Real > &  x,
const std::vector< Real > &  y 
) const
inlineprivate

Definition at line 1236 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::projection ( std::vector< Real > &  x)
inlineprivate

Definition at line 1244 of file example_04.hpp.

template<class Real >
bool L2BoundConstraint< Real >::isFeasible ( const ROL::Vector< Real > &  v)
inlinevirtual

Check if the vector, v, is feasible.

This function returns true if \(v = P_{[a,b]}(v)\).

Parameters
[in]vis the vector to be checked.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1266 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::project ( ROL::Vector< Real > &  x)
inlinevirtual

Project optimization variables onto the bounds.

This function implements the projection of \(x\) onto the bounds, i.e.,

\[ (P_{[a,b]}(x))(\xi) = \min\{b(\xi),\max\{a(\xi),x(\xi)\}\} \quad \text{for almost every }\xi\in\Xi. \]

Parameters
[in,out]xis the optimization variable.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1278 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneLowerActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the lower \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-active set is defined as

\[ \mathcal{A}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon\,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1283 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneUpperActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the upper \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-active set is defined as

\[ \mathcal{A}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon\,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1294 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}_\epsilon(x)\). Here, the \(\epsilon\)-active set is defined as

\[ \mathcal{A}_\epsilon(x) = \mathcal{A}^+_\epsilon(x)\cap\mathcal{A}^-_\epsilon(x). \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1305 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneLowerActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the lower \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon,\; g(\xi) > 0 \,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1317 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneUpperActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the upper \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon,\; g(\xi) < 0 \,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1329 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}_\epsilon(x)\). Here, the \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^+_\epsilon(x) = \mathcal{B}^+_\epsilon(x)\cap\mathcal{B}^-_\epsilon(x). \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1341 of file example_04.hpp.

template<class Real >
void L2BoundConstraint< Real >::setVectorToUpperBound ( ROL::Vector< Real > &  u)
inlinevirtual

Set the input vector to the upper bound.

This function sets the input vector \(u\) to the upper bound \(b\).

Parameters
[out]uis the vector to be set to the upper bound.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1354 of file example_04.hpp.

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

template<class Real >
void L2BoundConstraint< Real >::setVectorToLowerBound ( ROL::Vector< Real > &  l)
inlinevirtual

Set the input vector to the lower bound.

This function sets the input vector \(l\) to the lower bound \(a\).

Parameters
[out]lis the vector to be set to the lower bound.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1361 of file example_04.hpp.

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

template<class Real >
void L2BoundConstraint< Real >::cast_vector ( Teuchos::RCP< std::vector< Real > > &  xvec,
ROL::Vector< Real > &  x 
) const
inlineprivate

Definition at line 1275 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::cast_const_vector ( Teuchos::RCP< const std::vector< Real > > &  xvec,
const ROL::Vector< Real > &  x 
) const
inlineprivate

Definition at line 1287 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::axpy ( std::vector< Real > &  out,
const Real  a,
const std::vector< Real > &  x,
const std::vector< Real > &  y 
) const
inlineprivate

Definition at line 1299 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::projection ( std::vector< Real > &  x)
inlineprivate

Definition at line 1307 of file example_06.hpp.

template<class Real >
bool L2BoundConstraint< Real >::isFeasible ( const ROL::Vector< Real > &  v)
inlinevirtual

Check if the vector, v, is feasible.

This function returns true if \(v = P_{[a,b]}(v)\).

Parameters
[in]vis the vector to be checked.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1329 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::project ( ROL::Vector< Real > &  x)
inlinevirtual

Project optimization variables onto the bounds.

This function implements the projection of \(x\) onto the bounds, i.e.,

\[ (P_{[a,b]}(x))(\xi) = \min\{b(\xi),\max\{a(\xi),x(\xi)\}\} \quad \text{for almost every }\xi\in\Xi. \]

Parameters
[in,out]xis the optimization variable.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1341 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneLowerActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the lower \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-active set is defined as

\[ \mathcal{A}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon\,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1346 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneUpperActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the upper \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-active set is defined as

\[ \mathcal{A}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon\,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1357 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}_\epsilon(x)\). Here, the \(\epsilon\)-active set is defined as

\[ \mathcal{A}_\epsilon(x) = \mathcal{A}^+_\epsilon(x)\cap\mathcal{A}^-_\epsilon(x). \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1368 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneLowerActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the lower \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon,\; g(\xi) > 0 \,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1380 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneUpperActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the upper \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon,\; g(\xi) < 0 \,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1392 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}_\epsilon(x)\). Here, the \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^+_\epsilon(x) = \mathcal{B}^+_\epsilon(x)\cap\mathcal{B}^-_\epsilon(x). \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1404 of file example_06.hpp.

template<class Real >
void L2BoundConstraint< Real >::setVectorToUpperBound ( ROL::Vector< Real > &  u)
inlinevirtual

Set the input vector to the upper bound.

This function sets the input vector \(u\) to the upper bound \(b\).

Parameters
[out]uis the vector to be set to the upper bound.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1417 of file example_06.hpp.

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

template<class Real >
void L2BoundConstraint< Real >::setVectorToLowerBound ( ROL::Vector< Real > &  l)
inlinevirtual

Set the input vector to the lower bound.

This function sets the input vector \(l\) to the lower bound \(a\).

Parameters
[out]lis the vector to be set to the lower bound.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1424 of file example_06.hpp.

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

template<class Real >
void L2BoundConstraint< Real >::cast_vector ( Teuchos::RCP< std::vector< Real > > &  xvec,
ROL::Vector< Real > &  x 
) const
inlineprivate

Definition at line 1291 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::cast_const_vector ( Teuchos::RCP< const std::vector< Real > > &  xvec,
const ROL::Vector< Real > &  x 
) const
inlineprivate

Definition at line 1303 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::axpy ( std::vector< Real > &  out,
const Real  a,
const std::vector< Real > &  x,
const std::vector< Real > &  y 
) const
inlineprivate

Definition at line 1315 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::projection ( std::vector< Real > &  x)
inlineprivate

Definition at line 1323 of file example_07.hpp.

template<class Real >
bool L2BoundConstraint< Real >::isFeasible ( const ROL::Vector< Real > &  v)
inlinevirtual

Check if the vector, v, is feasible.

This function returns true if \(v = P_{[a,b]}(v)\).

Parameters
[in]vis the vector to be checked.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1345 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::project ( ROL::Vector< Real > &  x)
inlinevirtual

Project optimization variables onto the bounds.

This function implements the projection of \(x\) onto the bounds, i.e.,

\[ (P_{[a,b]}(x))(\xi) = \min\{b(\xi),\max\{a(\xi),x(\xi)\}\} \quad \text{for almost every }\xi\in\Xi. \]

Parameters
[in,out]xis the optimization variable.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1357 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneLowerActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the lower \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-active set is defined as

\[ \mathcal{A}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon\,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1362 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneUpperActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the upper \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-active set is defined as

\[ \mathcal{A}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon\,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1373 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the \(\epsilon\)-active set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}_\epsilon(x)\). Here, the \(\epsilon\)-active set is defined as

\[ \mathcal{A}_\epsilon(x) = \mathcal{A}^+_\epsilon(x)\cap\mathcal{A}^-_\epsilon(x). \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1384 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneLowerActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the lower \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon,\; g(\xi) > 0 \,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1396 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneUpperActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the upper \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon,\; g(\xi) < 0 \,\}. \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1408 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::pruneActive ( ROL::Vector< Real > &  v,
const ROL::Vector< Real > &  g,
const ROL::Vector< Real > &  x,
Real  eps 
)
inlinevirtual

Set variables to zero if they correspond to the \(\epsilon\)-binding set.

This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}_\epsilon(x)\). Here, the \(\epsilon\)-binding set is defined as

\[ \mathcal{B}^+_\epsilon(x) = \mathcal{B}^+_\epsilon(x)\cap\mathcal{B}^-_\epsilon(x). \]

Parameters
[out]vis the variable to be pruned.
[in]xis the current optimization variable.
[in]gis the negative search direction.
[in]epsis the active-set tolerance \(\epsilon\).

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1420 of file example_07.hpp.

template<class Real >
void L2BoundConstraint< Real >::setVectorToUpperBound ( ROL::Vector< Real > &  u)
inlinevirtual

Set the input vector to the upper bound.

This function sets the input vector \(u\) to the upper bound \(b\).

Parameters
[out]uis the vector to be set to the upper bound.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1433 of file example_07.hpp.

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

template<class Real >
void L2BoundConstraint< Real >::setVectorToLowerBound ( ROL::Vector< Real > &  l)
inlinevirtual

Set the input vector to the lower bound.

This function sets the input vector \(l\) to the lower bound \(a\).

Parameters
[out]lis the vector to be set to the lower bound.

Reimplemented from ROL::BoundConstraint< Real >.

Definition at line 1440 of file example_07.hpp.

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

Member Data Documentation

template<class Real >
int L2BoundConstraint< Real >::dim_
private

Definition at line 1205 of file example_04.hpp.

template<class Real >
std::vector< Real > L2BoundConstraint< Real >::x_lo_
private

Definition at line 1206 of file example_04.hpp.

template<class Real >
std::vector< Real > L2BoundConstraint< Real >::x_up_
private

Definition at line 1207 of file example_04.hpp.

template<class Real >
Real L2BoundConstraint< Real >::min_diff_
private

Definition at line 1208 of file example_04.hpp.

template<class Real >
Real L2BoundConstraint< Real >::scale_
private

Definition at line 1209 of file example_04.hpp.

template<class Real >
Teuchos::RCP< BurgersFEM< Real > > L2BoundConstraint< Real >::fem_
private

Definition at line 1210 of file example_04.hpp.


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