10#ifndef ROL_QUADRATICPENALTY_H
11#define ROL_QUADRATICPENALTY_H
53 const ROL::Ptr<Constraint<Real> >
con_;
87 const Real penaltyParameter,
90 const bool useScaling =
false,
91 const int HessianApprox = 0 )
107 con_->update(x,flag,iter);
119 const Real half(0.5);
196 Real tol = std::sqrt(ROL_EPSILON<Real>());
Contains definitions of custom data types in ROL.
Defines the general constraint operator interface.
Provides the interface to evaluate objective functions.
Provides the interface to evaluate the quadratic constraint penalty.
void setScaling(const Real cscale=1)
virtual Real value(const Vector< Real > &x, Real &tol)
Compute value.
ROL::Ptr< Vector< Real > > multiplier_
virtual void update(const Vector< Real > &x, bool flag=true, int iter=-1)
Update objective function.
virtual void reset(const Vector< Real > &multiplier, const Real penaltyParameter)
bool isConstraintComputed_
QuadraticPenalty(const ROL::Ptr< Constraint< Real > > &con, const Vector< Real > &multiplier, const Real penaltyParameter, const Vector< Real > &optVec, const Vector< Real > &conVec, const bool useScaling=false, const int HessianApprox=0)
const ROL::Ptr< Constraint< Real > > con_
virtual int getNumberConstraintEvaluations(void) const
void evaluateConstraint(const Vector< Real > &x, Real &tol)
virtual void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol)
Compute gradient.
ROL::Ptr< Vector< Real > > primalMultiplierVector_
ROL::Ptr< Vector< Real > > primalConVector_
virtual void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply Hessian approximation to vector.
ROL::Ptr< Vector< Real > > dualOptVector_
virtual void getConstraintVec(Vector< Real > &c, const Vector< Real > &x)
ROL::Ptr< Vector< Real > > conValue_
Defines the linear algebra or vector space interface.
virtual void set(const Vector &x)
Set where .
virtual void scale(const Real alpha)=0
Compute where .
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis,...
virtual void plus(const Vector &x)=0
Compute , where .
virtual void zero()
Set to zero vector.
virtual ROL::Ptr< Vector > clone() const =0
Clone to make a new (uninitialized) vector.