10#ifndef ROL_AUGMENTEDLAGRANGIANPENALTY_H
11#define ROL_AUGMENTEDLAGRANGIANPENALTY_H
15#include "ROL_ParameterList.hpp"
25 const Ptr<Constraint<Real>>
con_;
26 const Ptr<Projection<Real>>
proj_;
55 const Real penaltyParameter,
59 ParameterList &parlist)
63 conValue_ = makePtr<VectorController<Real,int>>();
64 dualValue_ = makePtr<VectorController<Real,int>>();
73 ParameterList& sublist = parlist.sublist(
"Step").sublist(
"Augmented Lagrangian");
79 const Real penaltyParameter,
83 const int hessianApprox)
87 conValue_ = makePtr<VectorController<Real,int>>();
88 dualValue_ = makePtr<VectorController<Real,int>>();
99 con_->update(x,type,iter);
Ptr< Vector< Real > > primConVector1_
void setScaling(const Real cscale=1.0)
const Ptr< Projection< Real > > proj_
Ptr< VectorController< Real, int > > dualValue_
Ptr< Vector< Real > > multiplier_
Ptr< VectorController< Real, int > > conValue_
Ptr< Vector< Real > > primConVector2_
const Ptr< const Vector< Real > > getDualVec(const Vector< Real > &x, Real &tol)
Ptr< Vector< Real > > dualOptVector_
Real getPenaltyParameter()
int getNumberConstraintEvaluations(void) const
virtual void update(const Vector< Real > &x, UpdateType type, int iter=-1)
Update objective function.
const Ptr< const Vector< Real > > getConstraintVec(const Vector< Real > &x, Real &tol)
void updateMultiplier(const Vector< Real > &x, Real &tol)
virtual Real value(const Vector< Real > &x, Real &tol)
Compute value.
AugmentedLagrangianPenalty(const Ptr< Constraint< Real > > &con, const Ptr< Projection< Real > > &proj, const Real penaltyParameter, const Vector< Real > &dualOptVec, const Vector< Real > &primConVec, const Vector< Real > &dualConVec, const int hessianApprox)
virtual void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol)
Compute gradient.
Real dualResidual(const Vector< Real > &x, Real &tol)
void setPenaltyParameter(const Real penaltyParameter)
Ptr< Vector< Real > > dualConVector_
virtual void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply Hessian approximation to vector.
const Ptr< Constraint< Real > > con_
Real dualNorm(const Vector< Real > &x, Real &tol)
AugmentedLagrangianPenalty(const Ptr< Constraint< Real > > &con, const Ptr< Projection< Real > > &proj, const Real penaltyParameter, const Vector< Real > &dualOptVec, const Vector< Real > &primConVec, const Vector< Real > &dualConVec, ParameterList &parlist)
void setMultiplier(const Vector< Real > &multiplier)
Real feasibility(const Vector< Real > &x, Real &tol)
Defines the general constraint operator interface.
Provides the interface to evaluate objective functions.
Defines the linear algebra or vector space interface.
virtual void scale(const Real alpha)=0
Compute where .
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.