44#ifndef ROL_CONSTRAINT_STATE_DEF_H
45#define ROL_CONSTRAINT_STATE_DEF_H
49template<
typename Real>
51 const Ptr<
const Vector<Real>> &z,
54template<
typename Real>
55void SimConstraint<Real>::update(
const Vector<Real> &u,
bool flag,
int iter ) {
60template<
typename Real>
61void SimConstraint<Real>::update(
const Vector<Real> &u, UpdateType
type,
int iter ) {
66template<
typename Real>
67void SimConstraint<Real>::value(Vector<Real> &c,
const Vector<Real> &u,Real &tol) {
71template<
typename Real>
72void SimConstraint<Real>::applyJacobian(Vector<Real> &jv,
const Vector<Real> &v,
const Vector<Real> &u,Real &tol) {
73 con_->applyJacobian_1(jv,v,u,*
z_,tol);
76template<
typename Real>
77void SimConstraint<Real>::applyAdjointJacobian(Vector<Real> &ajv,
const Vector<Real> &v,
const Vector<Real> &u,Real &tol) {
78 con_->applyAdjointJacobian_1(ajv,v,u,*
z_,tol);
81template<
typename Real>
82void SimConstraint<Real>::applyAdjointHessian(Vector<Real> &ahwv,
const Vector<Real> &w,
const Vector<Real> &v,
const Vector<Real> &u,Real &tol) {
83 con_->applyAdjointHessian_11(ahwv,w,v,u,*
z_,tol);
86template<
typename Real>
87void SimConstraint<Real>::applyPreconditioner(Vector<Real> &pv,
const Vector<Real> &v,
const Vector<Real> &u,
const Vector<Real> &g,Real &tol) {
92 con_->applyInverseJacobian_1(*
ijv_,v,u,*
z_,tol);
93 con_->applyInverseAdjointJacobian_1(pv,
ijv_->dual(),u,*
z_,tol);
96template<
typename Real>
97void SimConstraint<Real>::setParameter(
const std::vector<Real> ¶m) {
98 con_->setParameter(param);
99 Constraint<Real>::setParameter(param);
const Ptr< const Vector< Real > > z_
const Ptr< Constraint_SimOpt< Real > > con_
Ptr< Vector< Real > > ijv_
Defines the constraint operator interface for simulation-based optimization.