10 #ifndef ROL_AUGMENTED_SYSTEM_OPERATOR_H
11 #define ROL_AUGMENTED_SYSTEM_OPERATOR_H
28 const Ptr<Constraint<Real>>
con_;
29 const Ptr<const Vector<Real>>
x_;
36 const Real delta = 0.0)
43 Ptr<Vector<Real>> h1 = Hvp.
get(0)->dual().clone();
44 con_->applyAdjointJacobian(*h1, *(vp.
get(1)), *
x_, tol);
49 con_->applyJacobian(*(Hvp.
get(1)), *(vp.
get(0)), *
x_, tol);
50 if (
delta_ > static_cast<Real>(0) ) {
ROL::Ptr< const Vector< Real > > get(size_type i) const
Defines the linear algebra of vector space on a generic partitioned vector.
const V & dual(void) const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
void applyAdjoint(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply adjoint of linear operator.
Defines the linear algebra or vector space interface.
void applyInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply inverse of linear operator.
void applyAdjointInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply adjoint of the inverse linear operator.
virtual ~AugmentedSystemOperator()
const Ptr< const Vector< Real > > x_
AugmentedSystemOperator(const Ptr< Constraint< Real >> &con, const Ptr< const Vector< Real >> &x, const Real delta=0.0)
Provides the interface to apply a linear operator.
Apply the augmented system operator.
const Ptr< Constraint< Real > > con_
void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
Defines the general constraint operator interface.