ROL
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ROL::EqualityConstraint< Real > Class Template Referenceabstract

Defines the equality constraint operator interface. More...

#include <ROL_EqualityConstraint.hpp>

+ Inheritance diagram for ROL::EqualityConstraint< Real >:

Public Member Functions

virtual ~EqualityConstraint ()
 
virtual void value (Vector< Real > &c, const Vector< Real > &x, Real &tol)=0
 Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\). More...
 
virtual void applyJacobian (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\). More...
 
virtual void applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\). More...
 
virtual void applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &dualv, Real &tol)
 Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\). More...
 
virtual void applyAdjointHessian (Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
 Apply the derivative of the adjoint of the constraint Jacobian at \(x\) to vector \(u\) in direction \(v\), according to \( v \mapsto c''(x)(v,\cdot)^*u \). More...
 
virtual std::vector< Real > solveAugmentedSystem (Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol)
 Approximately solves the augmented system

\[ \begin{pmatrix} I & c'(x)^* \\ c'(x) & 0 \end{pmatrix} \begin{pmatrix} v_{1} \\ v_{2} \end{pmatrix} = \begin{pmatrix} b_{1} \\ b_{2} \end{pmatrix} \]

where \(v_{1} \in \mathcal{X}\), \(v_{2} \in \mathcal{C}^*\), \(b_{1} \in \mathcal{X}^*\), \(b_{2} \in \mathcal{C}\), \(I : \mathcal{X} \rightarrow \mathcal{X}^*\) is an identity or Riesz operator, and \(0 : \mathcal{C}^* \rightarrow \mathcal{C}\) is a zero operator. More...

 
virtual void applyPreconditioner (Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol)
 Apply a constraint preconditioner at \(x\), \(P(x) \in L(\mathcal{C}, \mathcal{C}^*)\), to vector \(v\). Ideally, this preconditioner satisfies the following relationship:

\[ \left[c'(x) \circ R \circ c'(x)^* \circ P(x)\right] v = v \,, \]

where R is the appropriate Riesz map in \(L(\mathcal{X}^*, \mathcal{X})\). It is used by the solveAugmentedSystem method. More...

 
 EqualityConstraint (void)
 
virtual void update (const Vector< Real > &x, bool flag=true, int iter=-1)
 Update constraint functions. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More...
 
virtual bool isFeasible (const Vector< Real > &v)
 Check if the vector, v, is feasible. More...
 
void activate (void)
 Turn on constraints. More...
 
void deactivate (void)
 Turn off constraints. More...
 
bool isActivated (void)
 Check if constraints are on. More...
 
virtual std::vector
< std::vector< Real > > 
checkApplyJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference check for the constraint Jacobian application. More...
 
virtual std::vector
< std::vector< Real > > 
checkApplyJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference check for the constraint Jacobian application. More...
 
virtual std::vector
< std::vector< Real > > 
checkApplyAdjointJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &c, const Vector< Real > &ajv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS)
 Finite-difference check for the application of the adjoint of constraint Jacobian. More...
 
virtual Real checkAdjointConsistencyJacobian (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual Real checkAdjointConsistencyJacobian (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout)
 
virtual std::vector
< std::vector< Real > > 
checkApplyAdjointHessian (const Vector< Real > &x, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &step, const bool printToScreen=true, std::ostream &outStream=std::cout, const int order=1)
 Finite-difference check for the application of the adjoint of constraint Hessian. More...
 
virtual std::vector
< std::vector< Real > > 
checkApplyAdjointHessian (const Vector< Real > &x, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &hv, const bool printToScreen=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
 Finite-difference check for the application of the adjoint of constraint Hessian. More...
 
virtual void setParameter (const std::vector< Real > &param)
 

Protected Member Functions

const std::vector< Real > getParameter (void) const
 

Private Attributes

bool activated_
 
std::vector< Real > param_
 

Detailed Description

template<class Real>
class ROL::EqualityConstraint< Real >

Defines the equality constraint operator interface.

ROL's equality constraint interface is designed for Fréchet differentiable operators \(c:\mathcal{X} \rightarrow \mathcal{C}\), where \(\mathcal{X}\) and \(\mathcal{C}\) are Banach spaces. The constraints are of the form

\[ c(x) = 0 \,. \]

The basic operator interface, to be implemented by the user, requires:

It is strongly recommended that the user additionally overload:

The user may also overload:

Definition at line 88 of file ROL_EqualityConstraint.hpp.

Constructor & Destructor Documentation

template<class Real>
virtual ROL::EqualityConstraint< Real >::~EqualityConstraint ( )
inlinevirtual

Definition at line 94 of file ROL_EqualityConstraint.hpp.

template<class Real>
ROL::EqualityConstraint< Real >::EqualityConstraint ( void  )
inline

Definition at line 273 of file ROL_EqualityConstraint.hpp.

Member Function Documentation

template<class Real>
virtual void ROL::EqualityConstraint< Real >::value ( Vector< Real > &  c,
const Vector< Real > &  x,
Real &  tol 
)
pure virtual

Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\).

Parameters
[out]cis the result of evaluating the constraint operator at x; a constraint-space vector
[in]xis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

On return, \(\mathsf{c} = c(x)\), where \(\mathsf{c} \in \mathcal{C}\), \(\mathsf{x} \in \mathcal{X}\).


Implemented in ROL::EqualityConstraint_SimOpt< Real >, Normalization_Constraint< Real >, ROL::InteriorPoint::CompositeConstraint< Real >, Normalization_Constraint< Real >, ROL::Reduced_EqualityConstraint_SimOpt< Real >, ROL::ZOO::EqualityConstraint_SimpleEqConstrained< Real, XPrim, XDual, CPrim, CDual >, ROL::PrimalDualInteriorPointResidual< Real >, ROL::ZOO::InequalityConstraint_HS32< Real >, ROL::PrimalDualInteriorPointResidual< Real >, ROL::ZOO::EqualityConstraint_ParaboloidCircle< Real, XPrim, XDual, CPrim, CDual >, ROL::ZOO::EqualityConstraint_HS39b< Real >, ROL::BinaryConstraint< Real >, ROL::ZOO::EqualityConstraint_HS32< Real >, ROL::ZOO::InequalityConstraint_HS29< Real >, ROL::InteriorPoint::PrimalDualResidual< Real >, ROL::InteriorPoint::PrimalDualResidual< Real >, ROL::ZOO::InequalityConstraint_HS24< Real >, ROL::CompositeConstraint< Real >, ROL::ZOO::EqualityConstraint_HS39a< Real >, ROL::ScalarLinearEqualityConstraint< Real >, ROL::LinearEqualityConstraint< Real >, ROL::BoundInequalityConstraint< Real >, ROL::StdEqualityConstraint< Real >, ROL::LowerBoundInequalityConstraint< Real >, ROL::StdInequalityConstraint< Real >, ROL::UpperBoundInequalityConstraint< Real >, ROL::SimulatedEqualityConstraint< Real >, ROL::EqualityConstraint_State< Real >, ROL::RiskLessEqualityConstraint< Real >, and ROL::EqualityConstraint_Partitioned< Real >.

Referenced by ROL::CompositeStep< Real >::accept(), ROL::CompositeStep< Real >::compute(), ROL::InteriorPointStep< Real >::initialize(), ROL::CompositeStep< Real >::initialize(), ROL::CompositeStep< Real >::update(), and ROL::MoreauYosidaPenaltyStep< Real >::updateState().

template<class Real >
void ROL::EqualityConstraint< Real >::applyJacobian ( Vector< Real > &  jv,
const Vector< Real > &  v,
const Vector< Real > &  x,
Real &  tol 
)
virtual

Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\).

Parameters
[out]jvis the result of applying the constraint Jacobian to v at x; a constraint-space vector
[in]vis an optimization-space vector
[in]xis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

On return, \(\mathsf{jv} = c'(x)v\), where \(v \in \mathcal{X}\), \(\mathsf{jv} \in \mathcal{C}\).

The default implementation is a finite-difference approximation.


Reimplemented in ROL::EqualityConstraint_SimOpt< Real >, Normalization_Constraint< Real >, ROL::InteriorPoint::CompositeConstraint< Real >, ROL::PrimalDualInteriorPointResidual< Real >, Normalization_Constraint< Real >, ROL::Reduced_EqualityConstraint_SimOpt< Real >, ROL::ZOO::EqualityConstraint_SimpleEqConstrained< Real, XPrim, XDual, CPrim, CDual >, ROL::PrimalDualInteriorPointResidual< Real >, ROL::ZOO::InequalityConstraint_HS32< Real >, ROL::ZOO::EqualityConstraint_ParaboloidCircle< Real, XPrim, XDual, CPrim, CDual >, ROL::InteriorPoint::PrimalDualResidual< Real >, ROL::InteriorPoint::PrimalDualResidual< Real >, ROL::ZOO::EqualityConstraint_HS39b< Real >, ROL::BinaryConstraint< Real >, ROL::ZOO::InequalityConstraint_HS29< Real >, ROL::ZOO::EqualityConstraint_HS32< Real >, ROL::CompositeConstraint< Real >, ROL::ZOO::InequalityConstraint_HS24< Real >, ROL::ZOO::EqualityConstraint_HS39a< Real >, ROL::SimulatedEqualityConstraint< Real >, ROL::ScalarLinearEqualityConstraint< Real >, ROL::LinearEqualityConstraint< Real >, ROL::StdEqualityConstraint< Real >, ROL::BoundInequalityConstraint< Real >, ROL::LowerBoundInequalityConstraint< Real >, ROL::StdInequalityConstraint< Real >, ROL::UpperBoundInequalityConstraint< Real >, ROL::RiskLessEqualityConstraint< Real >, ROL::EqualityConstraint_State< Real >, and ROL::EqualityConstraint_Partitioned< Real >.

Definition at line 51 of file ROL_EqualityConstraintDef.hpp.

References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::Vector< Real >::scale(), value(), and ROL::Vector< Real >::zero().

Referenced by ROL::CompositeStep< Real >::accept(), ROL::StdEqualityConstraint< Real >::applyJacobian(), ROL::CompositeStep< Real >::computeQuasinormalStep(), and ROL::CompositeStep< Real >::solveTangentialSubproblem().

template<class Real >
void ROL::EqualityConstraint< Real >::applyAdjointJacobian ( Vector< Real > &  ajv,
const Vector< Real > &  v,
const Vector< Real > &  x,
Real &  tol 
)
virtual

Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\).

Parameters
[out]ajvis the result of applying the adjoint of the constraint Jacobian to v at x; a dual optimization-space vector
[in]vis a dual constraint-space vector
[in]xis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

On return, \(\mathsf{ajv} = c'(x)^*v\), where \(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{X}^*\).

The default implementation is a finite-difference approximation.


Reimplemented in ROL::EqualityConstraint_SimOpt< Real >, Normalization_Constraint< Real >, ROL::InteriorPoint::CompositeConstraint< Real >, Normalization_Constraint< Real >, ROL::ZOO::EqualityConstraint_SimpleEqConstrained< Real, XPrim, XDual, CPrim, CDual >, ROL::Reduced_EqualityConstraint_SimOpt< Real >, ROL::ZOO::EqualityConstraint_ParaboloidCircle< Real, XPrim, XDual, CPrim, CDual >, ROL::ZOO::InequalityConstraint_HS32< Real >, ROL::BinaryConstraint< Real >, ROL::ZOO::EqualityConstraint_HS39b< Real >, ROL::CompositeConstraint< Real >, ROL::ZOO::InequalityConstraint_HS29< Real >, ROL::ZOO::EqualityConstraint_HS32< Real >, ROL::ZOO::InequalityConstraint_HS24< Real >, ROL::SimulatedEqualityConstraint< Real >, ROL::ZOO::EqualityConstraint_HS39a< Real >, ROL::StdEqualityConstraint< Real >, ROL::ScalarLinearEqualityConstraint< Real >, ROL::LinearEqualityConstraint< Real >, ROL::BoundInequalityConstraint< Real >, ROL::StdInequalityConstraint< Real >, ROL::UpperBoundInequalityConstraint< Real >, ROL::LowerBoundInequalityConstraint< Real >, ROL::RiskLessEqualityConstraint< Real >, ROL::EqualityConstraint_State< Real >, and ROL::EqualityConstraint_Partitioned< Real >.

Definition at line 87 of file ROL_EqualityConstraintDef.hpp.

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

Referenced by ROL::CompositeStep< Real >::accept(), ROL::StdEqualityConstraint< Real >::applyAdjointJacobian(), ROL::CompositeStep< Real >::compute(), ROL::CompositeStep< Real >::computeLagrangeMultiplier(), ROL::CompositeStep< Real >::computeQuasinormalStep(), ROL::CompositeStep< Real >::initialize(), ROL::CompositeStep< Real >::update(), and ROL::MoreauYosidaPenaltyStep< Real >::updateState().

template<class Real >
void ROL::EqualityConstraint< Real >::applyAdjointJacobian ( Vector< Real > &  ajv,
const Vector< Real > &  v,
const Vector< Real > &  x,
const Vector< Real > &  dualv,
Real &  tol 
)
virtual

Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\).

Parameters
[out]ajvis the result of applying the adjoint of the constraint Jacobian to v at x; a dual optimization-space vector
[in]vis a dual constraint-space vector
[in]xis the constraint argument; an optimization-space vector
[in]dualvis a vector used for temporary variables; a constraint-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

On return, \(\mathsf{ajv} = c'(x)^*v\), where \(v \in \mathcal{C}^*\), \(\mathsf{ajv} \in \mathcal{X}^*\).

The default implementation is a finite-difference approximation.


Definition at line 99 of file ROL_EqualityConstraintDef.hpp.

References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::basis(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::dimension(), ROL::Vector< Real >::dual(), ROL::Vector< Real >::norm(), value(), and ROL::Vector< Real >::zero().

template<class Real >
void ROL::EqualityConstraint< Real >::applyAdjointHessian ( Vector< Real > &  ahuv,
const Vector< Real > &  u,
const Vector< Real > &  v,
const Vector< Real > &  x,
Real &  tol 
)
virtual

Apply the derivative of the adjoint of the constraint Jacobian at \(x\) to vector \(u\) in direction \(v\), according to \( v \mapsto c''(x)(v,\cdot)^*u \).

Parameters
[out]ahuvis the result of applying the derivative of the adjoint of the constraint Jacobian at x to vector u in direction v; a dual optimization-space vector
[in]uis the direction vector; a dual constraint-space vector
[in]vis an optimization-space vector
[in]xis the constraint argument; an optimization-space vector
[in,out]tolis a tolerance for inexact evaluations; currently unused

On return, \( \mathsf{ahuv} = c''(x)(v,\cdot)^*u \), where \(u \in \mathcal{C}^*\), \(v \in \mathcal{X}\), and \(\mathsf{ahuv} \in \mathcal{X}^*\).

The default implementation is a finite-difference approximation based on the adjoint Jacobian.


Reimplemented in ROL::EqualityConstraint_SimOpt< Real >, Normalization_Constraint< Real >, ROL::InteriorPoint::CompositeConstraint< Real >, ROL::ZOO::EqualityConstraint_SimpleEqConstrained< Real, XPrim, XDual, CPrim, CDual >, Normalization_Constraint< Real >, ROL::Reduced_EqualityConstraint_SimOpt< Real >, ROL::ZOO::EqualityConstraint_ParaboloidCircle< Real, XPrim, XDual, CPrim, CDual >, ROL::ZOO::InequalityConstraint_HS32< Real >, ROL::CompositeConstraint< Real >, ROL::BinaryConstraint< Real >, ROL::ZOO::EqualityConstraint_HS39b< Real >, ROL::SimulatedEqualityConstraint< Real >, ROL::ZOO::InequalityConstraint_HS29< Real >, ROL::ZOO::EqualityConstraint_HS32< Real >, ROL::ZOO::InequalityConstraint_HS24< Real >, ROL::ZOO::EqualityConstraint_HS39a< Real >, ROL::StdEqualityConstraint< Real >, ROL::ScalarLinearEqualityConstraint< Real >, ROL::LinearEqualityConstraint< Real >, ROL::BoundInequalityConstraint< Real >, ROL::StdInequalityConstraint< Real >, ROL::UpperBoundInequalityConstraint< Real >, ROL::LowerBoundInequalityConstraint< Real >, ROL::EqualityConstraint_Partitioned< Real >, ROL::RiskLessEqualityConstraint< Real >, and ROL::EqualityConstraint_State< Real >.

Definition at line 170 of file ROL_EqualityConstraintDef.hpp.

References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::norm(), ROL::Vector< Real >::scale(), and ROL::Vector< Real >::zero().

Referenced by ROL::CompositeStep< Real >::accept(), ROL::StdEqualityConstraint< Real >::applyAdjointHessian(), ROL::ZOO::EqualityConstraint_ParaboloidCircle< Real, XPrim, XDual, CPrim, CDual >::applyAdjointHessian(), ROL::Reduced_EqualityConstraint_SimOpt< Real >::applyAdjointHessian(), and ROL::CompositeStep< Real >::solveTangentialSubproblem().

template<class Real >
std::vector< Real > ROL::EqualityConstraint< Real >::solveAugmentedSystem ( Vector< Real > &  v1,
Vector< Real > &  v2,
const Vector< Real > &  b1,
const Vector< Real > &  b2,
const Vector< Real > &  x,
Real &  tol 
)
virtual

Approximately solves the augmented system

\[ \begin{pmatrix} I & c'(x)^* \\ c'(x) & 0 \end{pmatrix} \begin{pmatrix} v_{1} \\ v_{2} \end{pmatrix} = \begin{pmatrix} b_{1} \\ b_{2} \end{pmatrix} \]

where \(v_{1} \in \mathcal{X}\), \(v_{2} \in \mathcal{C}^*\), \(b_{1} \in \mathcal{X}^*\), \(b_{2} \in \mathcal{C}\), \(I : \mathcal{X} \rightarrow \mathcal{X}^*\) is an identity or Riesz operator, and \(0 : \mathcal{C}^* \rightarrow \mathcal{C}\) is a zero operator.

Parameters
[out]v1is the optimization-space component of the result
[out]v2is the dual constraint-space component of the result
[in]b1is the dual optimization-space component of the right-hand side
[in]b2is the constraint-space component of the right-hand side
[in]xis the constraint argument; an optimization-space vector
[in,out]tolis the nominal relative residual tolerance

On return, \( [\mathsf{v1} \,\, \mathsf{v2}] \) approximately solves the augmented system, where the size of the residual is governed by special stopping conditions.

The default implementation is the preconditioned generalized minimal residual (GMRES) method, which enables the use of nonsymmetric preconditioners.


Reimplemented in ROL::EqualityConstraint_SimOpt< Real >, Normalization_Constraint< Real >, ROL::StdEqualityConstraint< Real >, ROL::ScalarLinearEqualityConstraint< Real >, and ROL::StdInequalityConstraint< Real >.

Definition at line 200 of file ROL_EqualityConstraintDef.hpp.

References applyJacobian(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::dot(), ROL::Vector< Real >::dual(), ROL::Vector< Real >::plus(), and ROL::Vector< Real >::zero().

Referenced by ROL::CompositeStep< Real >::accept(), ROL::CompositeStep< Real >::computeLagrangeMultiplier(), ROL::CompositeStep< Real >::computeQuasinormalStep(), ROL::StdEqualityConstraint< Real >::solveAugmentedSystem(), Normalization_Constraint< Real >::solveAugmentedSystem(), ROL::EqualityConstraint_SimOpt< Real >::solveAugmentedSystem(), and ROL::CompositeStep< Real >::solveTangentialSubproblem().

template<class Real>
virtual void ROL::EqualityConstraint< Real >::applyPreconditioner ( Vector< Real > &  pv,
const Vector< Real > &  v,
const Vector< Real > &  x,
const Vector< Real > &  g,
Real &  tol 
)
inlinevirtual

Apply a constraint preconditioner at \(x\), \(P(x) \in L(\mathcal{C}, \mathcal{C}^*)\), to vector \(v\). Ideally, this preconditioner satisfies the following relationship:

\[ \left[c'(x) \circ R \circ c'(x)^* \circ P(x)\right] v = v \,, \]

where R is the appropriate Riesz map in \(L(\mathcal{X}^*, \mathcal{X})\). It is used by the solveAugmentedSystem method.

Parameters
[out]pvis the result of applying the constraint preconditioner to v at x; a dual constraint-space vector
[in]vis a constraint-space vector
[in]xis the preconditioner argument; an optimization-space vector
[in]gis the preconditioner argument; a dual optimization-space vector, unused
[in,out]tolis a tolerance for inexact evaluations

On return, \(\mathsf{pv} = P(x)v\), where \(v \in \mathcal{C}\), \(\mathsf{pv} \in \mathcal{C}^*\).

The default implementation is the Riesz map in \(L(\mathcal{C}, \mathcal{C}^*)\).


Reimplemented in ROL::EqualityConstraint_SimOpt< Real >, ROL::SimulatedEqualityConstraint< Real >, ROL::StdEqualityConstraint< Real >, ROL::StdInequalityConstraint< Real >, ROL::EqualityConstraint_Partitioned< Real >, and ROL::EqualityConstraint_State< Real >.

Definition at line 264 of file ROL_EqualityConstraint.hpp.

References ROL::Vector< Real >::dual(), and ROL::Vector< Real >::set().

Referenced by ROL::StdEqualityConstraint< Real >::applyPreconditioner(), and ROL::EqualityConstraint_SimOpt< Real >::applyPreconditioner().

template<class Real>
virtual void ROL::EqualityConstraint< Real >::update ( const Vector< Real > &  x,
bool  flag = true,
int  iter = -1 
)
inlinevirtual
template<class Real>
virtual bool ROL::EqualityConstraint< Real >::isFeasible ( const Vector< Real > &  v)
inlinevirtual

Check if the vector, v, is feasible.

Reimplemented in ROL::EqualityConstraint_SimOpt< Real >.

Definition at line 284 of file ROL_EqualityConstraint.hpp.

template<class Real>
void ROL::EqualityConstraint< Real >::activate ( void  )
inline

Turn on constraints.

Definition at line 288 of file ROL_EqualityConstraint.hpp.

References ROL::EqualityConstraint< Real >::activated_.

template<class Real>
void ROL::EqualityConstraint< Real >::deactivate ( void  )
inline

Turn off constraints.

Definition at line 292 of file ROL_EqualityConstraint.hpp.

References ROL::EqualityConstraint< Real >::activated_.

template<class Real>
bool ROL::EqualityConstraint< Real >::isActivated ( void  )
inline

Check if constraints are on.

Definition at line 296 of file ROL_EqualityConstraint.hpp.

References ROL::EqualityConstraint< Real >::activated_.

template<class Real >
std::vector< std::vector< Real > > ROL::EqualityConstraint< Real >::checkApplyJacobian ( const Vector< Real > &  x,
const Vector< Real > &  v,
const Vector< Real > &  jv,
const std::vector< Real > &  steps,
const bool  printToStream = true,
std::ostream &  outStream = std::cout,
const int  order = 1 
)
virtual

Finite-difference check for the constraint Jacobian application.

Details here.

Definition at line 388 of file ROL_EqualityConstraintDef.hpp.

References applyJacobian(), ROL::Vector< Real >::clone(), ROL::Finite_Difference_Arrays::shifts, value(), and ROL::Finite_Difference_Arrays::weights.

Referenced by main().

template<class Real >
std::vector< std::vector< Real > > ROL::EqualityConstraint< Real >::checkApplyJacobian ( const Vector< Real > &  x,
const Vector< Real > &  v,
const Vector< Real > &  jv,
const bool  printToStream = true,
std::ostream &  outStream = std::cout,
const int  numSteps = ROL_NUM_CHECKDERIV_STEPS,
const int  order = 1 
)
virtual

Finite-difference check for the constraint Jacobian application.

Details here.

Definition at line 369 of file ROL_EqualityConstraintDef.hpp.

template<class Real >
std::vector< std::vector< Real > > ROL::EqualityConstraint< Real >::checkApplyAdjointJacobian ( const Vector< Real > &  x,
const Vector< Real > &  v,
const Vector< Real > &  c,
const Vector< Real > &  ajv,
const bool  printToStream = true,
std::ostream &  outStream = std::cout,
const int  numSteps = ROL_NUM_CHECKDERIV_STEPS 
)
virtual

Finite-difference check for the application of the adjoint of constraint Jacobian.

Details here. (This function should be deprecated)

Definition at line 494 of file ROL_EqualityConstraintDef.hpp.

References ROL::Vector< Real >::basis(), ROL::Vector< Real >::clone(), ROL::Vector< Real >::dimension(), ROL::Vector< Real >::dual(), and value().

Referenced by main().

template<class Real>
virtual Real ROL::EqualityConstraint< Real >::checkAdjointConsistencyJacobian ( const Vector< Real > &  w,
const Vector< Real > &  v,
const Vector< Real > &  x,
const bool  printToStream = true,
std::ostream &  outStream = std::cout 
)
inlinevirtual

Definition at line 349 of file ROL_EqualityConstraint.hpp.

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

template<class Real >
Real ROL::EqualityConstraint< Real >::checkAdjointConsistencyJacobian ( const Vector< Real > &  w,
const Vector< Real > &  v,
const Vector< Real > &  x,
const Vector< Real > &  dualw,
const Vector< Real > &  dualv,
const bool  printToStream = true,
std::ostream &  outStream = std::cout 
)
virtual
template<class Real >
std::vector< std::vector< Real > > ROL::EqualityConstraint< Real >::checkApplyAdjointHessian ( const Vector< Real > &  x,
const Vector< Real > &  u,
const Vector< Real > &  v,
const Vector< Real > &  hv,
const std::vector< Real > &  step,
const bool  printToScreen = true,
std::ostream &  outStream = std::cout,
const int  order = 1 
)
virtual

Finite-difference check for the application of the adjoint of constraint Hessian.

Details here.

Definition at line 642 of file ROL_EqualityConstraintDef.hpp.

References ROL::Vector< Real >::clone(), ROL::Finite_Difference_Arrays::shifts, and ROL::Finite_Difference_Arrays::weights.

Referenced by main().

template<class Real >
std::vector< std::vector< Real > > ROL::EqualityConstraint< Real >::checkApplyAdjointHessian ( const Vector< Real > &  x,
const Vector< Real > &  u,
const Vector< Real > &  v,
const Vector< Real > &  hv,
const bool  printToScreen = true,
std::ostream &  outStream = std::cout,
const int  numSteps = ROL_NUM_CHECKDERIV_STEPS,
const int  order = 1 
)
virtual

Finite-difference check for the application of the adjoint of constraint Hessian.

Details here.

Definition at line 623 of file ROL_EqualityConstraintDef.hpp.

template<class Real>
const std::vector<Real> ROL::EqualityConstraint< Real >::getParameter ( void  ) const
inlineprotected
template<class Real>
virtual void ROL::EqualityConstraint< Real >::setParameter ( const std::vector< Real > &  param)
inlinevirtual

Member Data Documentation

template<class Real>
bool ROL::EqualityConstraint< Real >::activated_
private
template<class Real>
std::vector<Real> ROL::EqualityConstraint< Real >::param_
private

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