ROL
ROL_UpperBoundToConstraint_Def.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Rapid Optimization Library (ROL) Package
4//
5// Copyright 2014 NTESS and the ROL contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef ROL_UPPER_BOUND_TO_CONSTRAINT_DEF_H
11#define ROL_UPPER_BOUND_TO_CONSTRAINT_DEF_H
12
13namespace ROL {
14
15template<typename Real>
20
21template<typename Real>
23 up_ = up.clone();
24 up_->set(up);
25}
26
27template<typename Real>
29 const Real one(1);
30 c.set(*up_);
31 c.axpy(-one,x);
32}
33
34template<typename Real>
36 const Vector<Real> &v,
37 const Vector<Real> &x,
38 Real &tol) {
39 const Real one(1);
40 jv.set(v);
41 jv.scale(-one);
42}
43
44template<typename Real>
46 const Vector<Real> &v,
47 const Vector<Real> &x,
48 Real &tol) {
49 const Real one(1);
50 ajv.set(v);
51 ajv.scale(-one);
52}
53
54template<typename Real>
56 const Vector<Real> &u,
57 const Vector<Real> &v,
58 const Vector<Real> &x,
59 Real &tol) {
60 ahuv.zero();
61}
62
63}
64
65#endif
Provides the interface to apply upper and lower bound constraints.
virtual const Ptr< const Vector< Real > > getUpperBound(void) const
Return the ref count pointer to the upper bound vector.
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the constraint Jacobian at , , to vector .
UpperBoundToConstraint(BoundConstraint< Real > &bnd)
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 value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Evaluate the constraint operator at .
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 .
Defines the linear algebra or vector space interface.
virtual void set(const Vector &x)
Set where .
virtual void scale(const Real alpha)=0
Compute where .
virtual void zero()
Set to zero vector.
virtual ROL::Ptr< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
virtual void axpy(const Real alpha, const Vector &x)
Compute where .