44#ifndef ROL_STDEQUALITY_CONSTRAINT_DEF_H
45#define ROL_STDEQUALITY_CONSTRAINT_DEF_H
49template<
typename Real>
55template<
typename Real>
61template<
typename Real>
68template<
typename Real>
78 catch (std::exception &e ){
83template<
typename Real>
85 const std::vector<Real> &v,
86 const std::vector<Real> &x, Real &tol ) {
87 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
88 ">>> ERROR (ROL::StdConstraint): applyJacobian not implemented!");
91template<
typename Real>
101 catch (std::exception &e ){
106template<
typename Real>
108 const std::vector<Real> &v,
109 const std::vector<Real> &x, Real &tol ) {
110 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
111 ">>> ERROR (ROL::StdConstraint): applyAdjointJacobian not implemented!");
114template<
typename Real>
127 catch (std::exception &e) {
132template<
typename Real>
134 const std::vector<Real> &u,
135 const std::vector<Real> &v,
136 const std::vector<Real> &x, Real &tol ) {
137 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
138 ">>> ERROR (ROL::StdConstraint) : applyAdjointHessian not implemented!");
141template<
typename Real>
156 catch (std::exception &e) {
161template<
typename Real>
163 std::vector<Real> &v2,
164 const std::vector<Real> &b1,
165 const std::vector<Real> &b2,
166 const std::vector<Real> &x, Real tol ) {
167 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
168 ">>> ERROR (ROL::StdConstraint) : solveAugmentedSystem not implemented!");
169 return std::vector<Real>();
172template<
typename Real>
185 catch (std::exception &e) {
190template<
typename Real>
192 const std::vector<Real> &v,
193 const std::vector<Real> &x,
194 const std::vector<Real> &g, Real &tol ) {
195 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
196 ">>> ERROR (ROL::StdConstraint) : applyPreconditioner not implemented!");
virtual void applyAdjointHessian(Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply the derivative of the adjoint of the constraint Jacobian at to vector in direction ,...
virtual void applyAdjointJacobian(Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply the adjoint of the the constraint Jacobian at , , to vector .
virtual void applyPreconditioner(Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol)
Apply a constraint preconditioner at , , to vector . Ideally, this preconditioner satisfies the follo...
virtual void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply the constraint Jacobian at , , to vector .
virtual std::vector< Real > solveAugmentedSystem(Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol)
Approximately solves the augmented system
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Evaluate the constraint operator at .
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 i...
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 ,...
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 .
void applyPreconditioner(Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol) override
Apply a constraint preconditioner at , , to vector . Ideally, this preconditioner satisfies the follo...
std::vector< Real > solveAugmentedSystem(Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol) override
Approximately solves the augmented system
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the constraint Jacobian at , , to vector .
Provides the ROL::Vector interface for scalar values, to be used, for example, with scalar constraint...
Ptr< const std::vector< Element > > getVector() const
Defines the linear algebra or vector space interface.
ROL::Objective_SerialSimOpt Objective_SimOpt value(const V &u, const V &z, Real &tol) override
virtual void update(const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) override
void applyJacobian(ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &sol)