ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
function
constraint
ROL_Constraint_Partitioned.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_CONSTRAINT_PARTITIONED_H
11
#define ROL_CONSTRAINT_PARTITIONED_H
12
13
#include "
ROL_PartitionedVector.hpp
"
14
#include "
ROL_Constraint.hpp
"
15
16
namespace
ROL
{
17
23
24
template
<
typename
Real>
25
class
Constraint_Partitioned
:
public
Constraint
<Real> {
26
private
:
27
std::vector<Ptr<Constraint<Real>>>
cvec_
;
28
std::vector<bool>
isInequality_
;
// Label whether cvec_[i] is inequality
29
const
int
offset_
;
// Offset for slack variables
30
Ptr<Vector<Real>>
scratch_
;
// Scratch vector for intermediate computation
31
int
ncval_
;
// Number of constraint evaluations
32
bool
initialized_
;
// Is scratch vector initialized?
33
34
public
:
35
Constraint_Partitioned
(
const
std::vector<Ptr<
Constraint<Real>
>> &cvec,
36
bool
isInequality =
false
,
37
int
offset = 0);
38
Constraint_Partitioned
(
const
std::vector<Ptr<
Constraint<Real>
>> &cvec,
39
std::vector<bool> isInequality,
40
int
offset = 0);
41
42
int
getNumberConstraintEvaluations
(
void
)
const
;
43
Ptr<Constraint<Real>>
get
(
int
ind = 0)
const
;
44
45
void
update
(
const
Vector<Real>
&x,
UpdateType
type,
int
iter = -1 )
override
;
46
void
update
(
const
Vector<Real>
&x,
bool
flag =
true
,
int
iter = -1 )
override
;
47
void
value
(
Vector<Real>
&c,
const
Vector<Real>
&x, Real &tol )
override
;
48
void
applyJacobian
(
Vector<Real>
&jv,
49
const
Vector<Real>
&v,
50
const
Vector<Real>
&x,
51
Real &tol )
override
;
52
using
Constraint
<Real>
::applyAdjointJacobian
;
53
void
applyAdjointJacobian
(
Vector<Real>
&ajv,
54
const
Vector<Real>
&v,
55
const
Vector<Real>
&x,
56
Real &tol )
override
;
57
void
applyAdjointHessian
(
Vector<Real>
&ahuv,
58
const
Vector<Real>
&u,
59
const
Vector<Real>
&v,
60
const
Vector<Real>
&x,
61
Real &tol )
override
;
62
virtual
void
applyPreconditioner
(
Vector<Real>
&pv,
63
const
Vector<Real>
&v,
64
const
Vector<Real>
&x,
65
const
Vector<Real>
&g,
66
Real &tol)
override
;
67
68
// Definitions for parametrized (stochastic) equality constraints
69
public
:
70
void
setParameter
(
const
std::vector<Real> ¶m)
override
;
71
72
private
:
73
Vector<Real>
&
getOpt
(
Vector<Real>
&xs )
const
;
74
const
Vector<Real>
&
getOpt
(
const
Vector<Real>
&xs )
const
;
75
Vector<Real>
&
getSlack
(
Vector<Real>
&xs,
int
ind )
const
;
76
const
Vector<Real>
&
getSlack
(
const
Vector<Real>
&xs,
int
ind )
const
;
77
78
};
// class Constraint_Partitioned
79
80
}
// namespace ROL
81
82
#include "
ROL_Constraint_Partitioned_Def.hpp
"
83
84
#endif
ROL_Constraint.hpp
ROL_Constraint_Partitioned_Def.hpp
ROL_PartitionedVector.hpp
ROL::Constraint_Partitioned::setParameter
void setParameter(const std::vector< Real > ¶m) override
Definition
ROL_Constraint_Partitioned_Def.hpp:171
ROL::Constraint_Partitioned::applyAdjointJacobian
void applyAdjointJacobian(Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Definition
ROL_Constraint_Partitioned_Def.hpp:97
ROL::Constraint_Partitioned::getSlack
Vector< Real > & getSlack(Vector< Real > &xs, int ind) const
Definition
ROL_Constraint_Partitioned_Def.hpp:200
ROL::Constraint_Partitioned::getOpt
Vector< Real > & getOpt(Vector< Real > &xs) const
Definition
ROL_Constraint_Partitioned_Def.hpp:180
ROL::Constraint_Partitioned::offset_
const int offset_
Definition
ROL_Constraint_Partitioned.hpp:29
ROL::Constraint_Partitioned::Constraint_Partitioned
Constraint_Partitioned(const std::vector< Ptr< Constraint< Real > > > &cvec, bool isInequality=false, int offset=0)
Definition
ROL_Constraint_Partitioned_Def.hpp:16
ROL::Constraint_Partitioned::value
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Definition
ROL_Constraint_Partitioned_Def.hpp:61
ROL::Constraint_Partitioned::get
Ptr< Constraint< Real > > get(int ind=0) const
Definition
ROL_Constraint_Partitioned_Def.hpp:37
ROL::Constraint_Partitioned::getNumberConstraintEvaluations
int getNumberConstraintEvaluations(void) const
Definition
ROL_Constraint_Partitioned_Def.hpp:32
ROL::Constraint_Partitioned::initialized_
bool initialized_
Definition
ROL_Constraint_Partitioned.hpp:32
ROL::Constraint_Partitioned::cvec_
std::vector< Ptr< Constraint< Real > > > cvec_
Definition
ROL_Constraint_Partitioned.hpp:27
ROL::Constraint_Partitioned::applyAdjointHessian
void applyAdjointHessian(Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Definition
ROL_Constraint_Partitioned_Def.hpp:125
ROL::Constraint_Partitioned::applyJacobian
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Definition
ROL_Constraint_Partitioned_Def.hpp:78
ROL::Constraint_Partitioned::isInequality_
std::vector< bool > isInequality_
Definition
ROL_Constraint_Partitioned.hpp:28
ROL::Constraint_Partitioned::applyPreconditioner
virtual void applyPreconditioner(Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol) override
Definition
ROL_Constraint_Partitioned_Def.hpp:154
ROL::Constraint_Partitioned::ncval_
int ncval_
Definition
ROL_Constraint_Partitioned.hpp:31
ROL::Constraint_Partitioned::scratch_
Ptr< Vector< Real > > scratch_
Definition
ROL_Constraint_Partitioned.hpp:30
ROL::Constraint_Partitioned::update
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
Definition
ROL_Constraint_Partitioned_Def.hpp:45
ROL::ROL::Constraint::Constraint
Constraint(void)
Definition
ROL_Constraint_SerialSimOpt.hpp:59
ROL::Vector
Defines the linear algebra or vector space interface.
Definition
ROL_Vector.hpp:51
ROL
Definition
ROL_ElementwiseVector.hpp:27
ROL::UpdateType
UpdateType
Definition
ROL_UpdateType.hpp:18
Generated by
1.17.0