10 #ifndef ROL_FLETCHEROBJECTIVEE_H
11 #define ROL_FLETCHEROBJECTIVEE_H
17 template<
typename Real>
21 Ptr<Vector<Real>>
Tv_;
25 Ptr<Vector<Real>>
wg_;
26 Ptr<Vector<Real>>
vg_;
72 const Ptr<Constraint<Real>>
con_;
73 const Ptr<const Vector<Real>>
x_;
84 con_->applyAdjointJacobian(*Hvp.
get(0), *vp.
get(1), *
x_, tol);
85 Hvp.
get(0)->plus(vp.
get(0)->dual());
94 const Ptr<Constraint<Real>>
con_;
95 const Ptr<const Vector<Real>>
x_;
96 const Ptr<const Vector<Real>>
g_;
109 Hvp.
set(0, vp.
get(0)->dual());
110 con_->applyPreconditioner(*(Hvp.
get(1)),*(vp.
get(1)),*
x_,*
g_, tol);
121 ROL::ParameterList &parlist);
Provides the interface to evaluate objective functions.
void solveAugmentedSystem(Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol, bool refine=false) override
const Ptr< Constraint< Real > > con_
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
ROL::Ptr< const Vector< Real > > get(size_type i) const
Defines the linear algebra of vector space on a generic partitioned vector.
Ptr< Vector< Real > > wg_
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol) override
Compute gradient.
void applyInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply inverse of linear operator.
Defines the linear algebra or vector space interface.
void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
const Ptr< const Vector< Real > > g_
Ptr< Vector< Real > > czeros_
AugSystem(const Ptr< Constraint< Real >> &con, const Ptr< const Vector< Real >> &x, const Real delta)
void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
FletcherObjectiveE(const ROL::Ptr< Objective< Real >> &obj, const ROL::Ptr< Constraint< Real >> &con, const Vector< Real > &xprim, const Vector< Real > &xdual, const Vector< Real > &cprim, const Vector< Real > &cdual, ROL::ParameterList &parlist)
Ptr< Vector< Real > > vg_
void set(const V &x)
Set where .
Ptr< Vector< Real > > Tv_
const Ptr< const Vector< Real > > x_
const Ptr< Constraint< Real > > con_
AugSystemPrecond(const Ptr< Constraint< Real >> con, const Ptr< const Vector< Real >> x, const Ptr< const Vector< Real >> g)
Provides the interface to apply a linear operator.
Ptr< Vector< Real > > xzeros_
const Ptr< const Vector< Real > > x_
Real value(const Vector< Real > &x, Real &tol) override
Compute value.
Ptr< Vector< Real > > wdual_
virtual void set(const Vector &x)
Set where .
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply Hessian approximation to vector.
Defines the general constraint operator interface.