10#ifndef ROL_CONSTRAINT_PARTITIONED_DEF_H
11#define ROL_CONSTRAINT_PARTITIONED_DEF_H
15template<
typename Real>
24template<
typename Real>
26 std::vector<bool> isInequality,
31template<
typename Real>
36template<
typename Real>
38 if (ind < 0 || ind >=
static_cast<int>(
cvec_.size())) {
44template<
typename Real>
46 const int ncon =
static_cast<int>(
cvec_.size());
47 for (
int i = 0; i < ncon; ++i) {
52template<
typename Real>
54 const int ncon =
static_cast<int>(
cvec_.size());
55 for (
int i = 0; i < ncon; ++i) {
60template<
typename Real>
65 const int ncon =
static_cast<int>(
cvec_.size());
67 for (
int i = 0; i < ncon; ++i) {
70 cpv.
get(i)->axpy(
static_cast<Real
>(-1),
getSlack(x,cnt));
77template<
typename Real>
85 const int ncon =
static_cast<int>(
cvec_.size());
87 for (
int i = 0; i < ncon; ++i) {
90 jvpv.
get(i)->axpy(
static_cast<Real
>(-1),
getSlack(v,cnt));
96template<
typename Real>
109 const int ncon =
static_cast<int>(
cvec_.size());
112 for (
int i = 0; i < ncon; ++i) {
118 getSlack(ajv,cnt).scale(
static_cast<Real
>(-1));
124template<
typename Real>
138 const int ncon =
static_cast<int>(
cvec_.size());
141 for (
int i = 0; i < ncon; ++i) {
142 Ptr<const Vector<Real>> ui = upv.
get(i);
153template<
typename Real>
164 const int ncon =
static_cast<int>(
cvec_.size());
165 for (
int i = 0; i < ncon; ++i) {
170template<
typename Real>
173 const int ncon =
static_cast<int>(
cvec_.size());
174 for (
int i = 0; i < ncon; ++i) {
175 cvec_[i]->setParameter(param);
179template<
typename Real>
184 catch (std::exception &e) {
189template<
typename Real>
194 catch (std::exception &e) {
199template<
typename Real>
204template<
typename Real>
void setParameter(const std::vector< Real > ¶m) override
void applyAdjointJacobian(Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Vector< Real > & getSlack(Vector< Real > &xs, int ind) const
Vector< Real > & getOpt(Vector< Real > &xs) const
Constraint_Partitioned(const std::vector< Ptr< Constraint< Real > > > &cvec, bool isInequality=false, int offset=0)
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Ptr< Constraint< Real > > get(int ind=0) const
int getNumberConstraintEvaluations(void) const
std::vector< Ptr< Constraint< Real > > > cvec_
void applyAdjointHessian(Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
std::vector< bool > isInequality_
virtual void applyPreconditioner(Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol) override
Ptr< Vector< Real > > scratch_
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
virtual void setParameter(const std::vector< Real > ¶m)
Defines the linear algebra of vector space on a generic partitioned vector.
ROL::Ptr< const Vector< Real > > get(size_type i) const
Defines the linear algebra or vector space interface.