10 #ifndef ROL_STDEQUALITY_CONSTRAINT_DEF_H
11 #define ROL_STDEQUALITY_CONSTRAINT_DEF_H
15 template<
typename Real>
21 template<
typename Real>
27 template<
typename Real>
34 template<
typename Real>
44 catch (std::exception &e ){
49 template<
typename Real>
51 const std::vector<Real> &v,
52 const std::vector<Real> &x, Real &tol ) {
53 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
54 ">>> ERROR (ROL::StdConstraint): applyJacobian not implemented!");
57 template<
typename Real>
67 catch (std::exception &e ){
72 template<
typename Real>
74 const std::vector<Real> &v,
75 const std::vector<Real> &x, Real &tol ) {
76 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
77 ">>> ERROR (ROL::StdConstraint): applyAdjointJacobian not implemented!");
80 template<
typename Real>
93 catch (std::exception &e) {
98 template<
typename Real>
100 const std::vector<Real> &u,
101 const std::vector<Real> &v,
102 const std::vector<Real> &x, Real &tol ) {
103 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
104 ">>> ERROR (ROL::StdConstraint) : applyAdjointHessian not implemented!");
107 template<
typename Real>
122 catch (std::exception &e) {
127 template<
typename Real>
129 std::vector<Real> &v2,
130 const std::vector<Real> &b1,
131 const std::vector<Real> &b2,
132 const std::vector<Real> &x, Real tol ) {
133 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
134 ">>> ERROR (ROL::StdConstraint) : solveAugmentedSystem not implemented!");
135 return std::vector<Real>();
138 template<
typename Real>
151 catch (std::exception &e) {
156 template<
typename Real>
158 const std::vector<Real> &v,
159 const std::vector<Real> &x,
160 const std::vector<Real> &g, Real &tol ) {
161 ROL_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
162 ">>> 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 .