44 #ifndef ROL_PRIMALDUALPRECONDITIONER_H
45 #define ROL_PRIMALDUALPRECONDITIONER_H
58 const Teuchos::RCP<Objective<Real> >
obj_;
59 const Teuchos::RCP<BoundConstraint<Real> >
con_;
60 const Teuchos::RCP<Vector<Real> >
x_;
61 const Teuchos::RCP<Vector<Real> >
xlam_;
62 Teuchos::RCP<Vector<Real> >
v_;
64 const Teuchos::RCP<Secant<Real> >
secant_;
85 const Teuchos::RCP<
Vector<Real> > &xlam,
bool useSecant =
true )
Provides the interface to evaluate objective functions.
void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply preconditioner.
const Teuchos::RCP< Objective< Real > > obj_
const Teuchos::RCP< BoundConstraint< Real > > con_
PrimalDualPreconditioner(const Teuchos::RCP< Secant< Real > > &secant, const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< BoundConstraint< Real > > &con, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< Vector< Real > > &xlam, bool useSecant=true)
Contains definitions of custom data types in ROL.
const Teuchos::RCP< Secant< Real > > secant_
Defines the linear algebra or vector space interface.
Teuchos::RCP< Vector< Real > > v_
Provides interface for and implements limited-memory secant operators.
PrimalDualPreconditioner(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< BoundConstraint< Real > > &con, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< Vector< Real > > &xlam)
Provides the interface to apply a linear operator.
Provides the interface to apply upper and lower bound constraints.
const Teuchos::RCP< Vector< Real > > xlam_
const Teuchos::RCP< Vector< Real > > x_