45#ifndef ROL_FLETCHEROBJECTIVEE_H
46#define ROL_FLETCHEROBJECTIVEE_H
52template<
typename Real>
56 Ptr<Vector<Real>>
Tv_;
60 Ptr<Vector<Real>>
wg_;
61 Ptr<Vector<Real>>
vg_;
107 const Ptr<Constraint<Real>>
con_;
108 const Ptr<const Vector<Real>>
x_;
119 con_->applyAdjointJacobian(*Hvp.
get(0), *vp.
get(1), *
x_, tol);
120 Hvp.
get(0)->plus(vp.
get(0)->dual());
129 const Ptr<Constraint<Real>>
con_;
130 const Ptr<const Vector<Real>>
x_;
131 const Ptr<const Vector<Real>>
g_;
144 Hvp.
set(0, vp.
get(0)->dual());
145 con_->applyPreconditioner(*(Hvp.
get(1)),*(vp.
get(1)),*
x_,*
g_, tol);
156 ROL::ParameterList &parlist);
Defines the general constraint operator interface.
Ptr< VectorController< Real, int > > g_
Ptr< Vector< Real > > gL_
Ptr< Vector< Real > > xdual_
const Ptr< Objective< Real > > obj_
Ptr< VectorController< Real, int > > gPhi_
Ptr< Vector< Real > > scaledc_
Ptr< Vector< Real > > cdual_
Ptr< Vector< Real > > b2_
Ptr< ScalarController< Real, int > > fval_
Ptr< VectorController< Real, int > > c_
Ptr< Vector< Real > > xprim_
Ptr< PartitionedVector< Real > > bb_
Ptr< PartitionedVector< Real > > ww_
Ptr< ScalarController< Real, int > > fPhi_
Ptr< Vector< Real > > cprim_
Ptr< Vector< Real > > gLdual_
Ptr< PartitionedVector< Real > > vv_
Ptr< Vector< Real > > w2_
Ptr< Vector< Real > > b1_
Real quadPenaltyParameter_
Ptr< Vector< Real > > v2_
Ptr< Vector< Real > > v1_
Ptr< Krylov< Real > > krylov_
const Ptr< Constraint< Real > > con_
Ptr< VectorController< Real, int > > y_
Ptr< Vector< Real > > w1_
const Ptr< const Vector< Real > > x_
void applyInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply inverse of linear operator.
AugSystemPrecond(const Ptr< Constraint< Real > > con, const Ptr< const Vector< Real > > x, const Ptr< const Vector< Real > > g)
void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
const Ptr< const Vector< Real > > g_
const Ptr< Constraint< Real > > con_
void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
const Ptr< const Vector< Real > > x_
AugSystem(const Ptr< Constraint< Real > > &con, const Ptr< const Vector< Real > > &x, const Real delta)
const Ptr< Constraint< Real > > con_
Ptr< Vector< Real > > Tv_
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
Ptr< Vector< Real > > xzeros_
Ptr< Vector< Real > > wdual_
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply Hessian approximation to vector.
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol) override
Compute gradient.
Real value(const Vector< Real > &x, Real &tol) override
Compute value.
Ptr< Vector< Real > > czeros_
Ptr< Vector< Real > > vg_
Ptr< Vector< Real > > wg_
Provides the interface to apply a linear operator.
Provides the interface to evaluate objective functions.
Defines the linear algebra of vector space on a generic partitioned vector.
ROL::Ptr< const Vector< Real > > get(size_type i) const
void set(const V &x)
Set where .
Defines the linear algebra or vector space interface.
virtual void set(const Vector &x)
Set where .
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis,...