10 #ifndef ROL_MEANVALUECONSTRAINT_DEF_HPP
11 #define ROL_MEANVALUECONSTRAINT_DEF_HPP
15 template<
typename Real>
20 con_->setParameter(param);
23 template<
typename Real>
25 con_->update(x,flag,iter);
28 template<
typename Real>
30 con_->update(x,type,iter);
33 template<
typename Real>
38 template<
typename Real>
40 con_->applyJacobian(jv,v,x,tol);
43 template<
typename Real>
45 con_->applyAdjointJacobian(ajv,v,x,tol);
48 template<
typename Real>
50 con_->applyAdjointHessian(ahuv,u,v,x,tol);
53 template<
typename Real>
56 int dim = sampler->getMyPoint(0).size(), nsamp = sampler->numMySamples();
57 std::vector<Real> loc(dim), mean(dim), pt(dim);
59 for (
int i = 0; i < nsamp; i++) {
60 pt = sampler->getMyPoint(i);
61 wt = sampler->getMyWeight(i);
62 for (
int j = 0; j <
dim; j++) {
66 sampler->sumAll(&loc[0],&mean[0],dim);
void applyAdjointHessian(Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the derivative of the adjoint of the constraint Jacobian at to vector in direction ...
MeanValueConstraint(const Ptr< Constraint< Real >> &con, const Ptr< SampleGenerator< Real >> &sampler)
Defines the linear algebra or vector space interface.
std::vector< Real > computeSampleMean(const Ptr< SampleGenerator< Real >> &sampler) const
void update(const Vector< Real > &x, bool flag=true, int iter=-1) override
Update constraint functions. x is the optimization variable, flag = true if optimization variable is ...
void applyAdjointJacobian(Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the adjoint of the the constraint Jacobian at , , to vector .
const Ptr< Constraint< Real > > con_
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Evaluate the constraint operator at .
Defines the general constraint operator interface.
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the constraint Jacobian at , , to vector .