ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
algorithm
TypeG
stabilizedlcl
ROL_ElasticObjective.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_ELASTICOBJECTIVE_H
11
#define ROL_ELASTICOBJECTIVE_H
12
13
#include "
ROL_AugmentedLagrangianObjective.hpp
"
14
#include "
ROL_PartitionedVector.hpp
"
15
44
45
46
namespace
ROL
{
47
48
template
<
typename
Real>
49
class
ElasticObjective
:
public
Objective
<Real> {
50
private
:
51
// Required for Augmented Lagrangian definition
52
Ptr<AugmentedLagrangianObjective<Real>>
alobj_
;
53
Ptr<Vector<Real>>
e_
,
tmp_
;
54
Real
sigma_
,
cscale_
;
55
56
public
:
57
ElasticObjective
(
const
Ptr<
Objective<Real>
> &obj,
58
const
Ptr<
Constraint<Real>
> &con,
59
const
Real penaltyParameter,
60
const
Real sigma,
61
const
Vector<Real>
&dualOptVec,
62
const
Vector<Real>
&primConVec,
63
const
Vector<Real>
&dualConVec,
64
ParameterList &parlist);
65
66
ElasticObjective
(
const
Ptr<
Objective<Real>
> &obj,
67
const
Ptr<
Constraint<Real>
> &con,
68
const
Real penaltyParameter,
69
const
Real sigma,
70
const
Vector<Real>
&dualOptVec,
71
const
Vector<Real>
&primConVec,
72
const
Vector<Real>
&dualConVec,
73
const
bool
scaleLagrangian,
74
const
int
HessianApprox);
75
76
void
update
(
const
Vector<Real>
&x,
UpdateType
type,
int
iter = -1 )
override
;
77
Real
value
(
const
Vector<Real>
&x, Real &tol )
override
;
78
void
gradient
(
Vector<Real>
&g,
const
Vector<Real>
&x, Real &tol )
override
;
79
void
hessVec
(
Vector<Real>
&hv,
const
Vector<Real>
&v,
const
Vector<Real>
&x, Real &tol )
override
;
80
81
// Set problem data scalings
82
void
setScaling
(
const
Real fscale = 1.0,
const
Real cscale = 1.0);
83
// Return objective function value
84
Real
getObjectiveValue
(
const
Vector<Real>
&x, Real &tol);
85
// Compute objective function gradient
86
const
Ptr<const Vector<Real>>
getObjectiveGradient
(
const
Vector<Real>
&x, Real &tol);
87
// Return constraint value
88
const
Ptr<const Vector<Real>>
getConstraintVec
(
const
Vector<Real>
&x, Real &tol);
89
// Return total number of constraint evaluations
90
int
getNumberConstraintEvaluations
(
void
)
const
;
91
// Return total number of objective evaluations
92
int
getNumberFunctionEvaluations
(
void
)
const
;
93
// Return total number of gradient evaluations
94
int
getNumberGradientEvaluations
(
void
)
const
;
95
// Reset with upated penalty parameter
96
void
reset
(
const
Vector<Real>
&multiplier, Real penaltyParameter, Real sigma);
97
// Return augmented Lagrangian
98
const
Ptr<AugmentedLagrangianObjective<Real>>
getAugmentedLagrangian
(
void
)
const
;
99
};
// class ElasticObjective
100
101
}
// namespace ROL
102
103
#include "
ROL_ElasticObjective_Def.hpp
"
104
105
#endif
ROL_AugmentedLagrangianObjective.hpp
ROL_ElasticObjective_Def.hpp
ROL_PartitionedVector.hpp
ROL::Constraint
Defines the general constraint operator interface.
Definition
ROL_Constraint.hpp:52
ROL::ElasticObjective::cscale_
Real cscale_
Definition
ROL_ElasticObjective.hpp:54
ROL::ElasticObjective::reset
void reset(const Vector< Real > &multiplier, Real penaltyParameter, Real sigma)
Definition
ROL_ElasticObjective_Def.hpp:124
ROL::ElasticObjective::e_
Ptr< Vector< Real > > e_
Definition
ROL_ElasticObjective.hpp:53
ROL::ElasticObjective::getConstraintVec
const Ptr< const Vector< Real > > getConstraintVec(const Vector< Real > &x, Real &tol)
Definition
ROL_ElasticObjective_Def.hpp:104
ROL::ElasticObjective::hessVec
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Definition
ROL_ElasticObjective_Def.hpp:82
ROL::ElasticObjective::getObjectiveGradient
const Ptr< const Vector< Real > > getObjectiveGradient(const Vector< Real > &x, Real &tol)
Definition
ROL_ElasticObjective_Def.hpp:99
ROL::ElasticObjective::update
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
Definition
ROL_ElasticObjective_Def.hpp:48
ROL::ElasticObjective::gradient
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol) override
Definition
ROL_ElasticObjective_Def.hpp:71
ROL::ElasticObjective::getAugmentedLagrangian
const Ptr< AugmentedLagrangianObjective< Real > > getAugmentedLagrangian(void) const
Definition
ROL_ElasticObjective_Def.hpp:130
ROL::ElasticObjective::getNumberConstraintEvaluations
int getNumberConstraintEvaluations(void) const
Definition
ROL_ElasticObjective_Def.hpp:109
ROL::ElasticObjective::value
Real value(const Vector< Real > &x, Real &tol) override
Definition
ROL_ElasticObjective_Def.hpp:60
ROL::ElasticObjective::getObjectiveValue
Real getObjectiveValue(const Vector< Real > &x, Real &tol)
Definition
ROL_ElasticObjective_Def.hpp:94
ROL::ElasticObjective::setScaling
void setScaling(const Real fscale=1.0, const Real cscale=1.0)
Definition
ROL_ElasticObjective_Def.hpp:54
ROL::ElasticObjective::tmp_
Ptr< Vector< Real > > tmp_
Definition
ROL_ElasticObjective.hpp:53
ROL::ElasticObjective::ElasticObjective
ElasticObjective(const Ptr< Objective< Real > > &obj, const Ptr< Constraint< Real > > &con, const Real penaltyParameter, const Real sigma, const Vector< Real > &dualOptVec, const Vector< Real > &primConVec, const Vector< Real > &dualConVec, ParameterList &parlist)
Definition
ROL_ElasticObjective_Def.hpp:17
ROL::ElasticObjective::getNumberFunctionEvaluations
int getNumberFunctionEvaluations(void) const
Definition
ROL_ElasticObjective_Def.hpp:114
ROL::ElasticObjective::getNumberGradientEvaluations
int getNumberGradientEvaluations(void) const
Definition
ROL_ElasticObjective_Def.hpp:119
ROL::ElasticObjective::alobj_
Ptr< AugmentedLagrangianObjective< Real > > alobj_
Definition
ROL_ElasticObjective.hpp:52
ROL::ElasticObjective::sigma_
Real sigma_
Definition
ROL_ElasticObjective.hpp:54
ROL::ROL::Objective::Objective
Objective()
Definition
ROL_Constraint_SerialSimOpt.hpp:53
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