44 #ifndef ROL_STDEQUALITY_CONSTRAINT_DEF_H
45 #define ROL_STDEQUALITY_CONSTRAINT_DEF_H
49 template<
typename Real>
55 template<
typename Real>
61 template<
typename Real>
68 template<
typename Real>
78 catch (std::exception &e ){
83 template<
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!");
91 template<
typename Real>
101 catch (std::exception &e ){
106 template<
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!");
114 template<
typename Real>
127 catch (std::exception &e) {
132 template<
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!");
141 template<
typename Real>
156 catch (std::exception &e) {
161 template<
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>();
172 template<
typename Real>
185 catch (std::exception &e) {
190 template<
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 applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply 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 update(const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) override
Ptr< const std::vector< Element > > getVector() const
ROL::Objective_SimOpt value
Defines the linear algebra or vector space interface.
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Evaluate the constraint operator at .
void applyJacobian(ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &sol)
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 where , , , , is an identity or Riesz operator...
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 ...
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 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 where , , , , is an identity or Riesz operator...
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...
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 applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the constraint Jacobian at , , to vector .
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 .