Ipopt
3.11.4
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
src
contrib
CGPenalty
IpCGPerturbationHandler.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2008 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpCGPerturbationHandler.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2005-08-04
8
9
#ifndef __IPCGPERTURBATIONHANDLER_HPP__
10
#define __IPCGPERTURBATIONHANDLER_HPP__
11
12
#include "
IpPDPerturbationHandler.hpp
"
13
#include "
IpCGPenaltyCq.hpp
"
14
15
namespace
Ipopt
16
{
17
25
class
CGPerturbationHandler
:
public
PDPerturbationHandler
26
{
27
public
:
31
CGPerturbationHandler
();
33
virtual
~CGPerturbationHandler
()
34
{}
36
37
/* overloaded from AlgorithmStrategyObject */
38
virtual
bool
InitializeImpl
(
const
OptionsList
& options,
39
const
std::string& prefix);
40
47
bool
ConsiderNewSystem
(
Number
& delta_x,
Number
& delta_s,
48
Number
& delta_c,
Number
& delta_d);
49
54
bool
PerturbForSingularity
(
Number
& delta_x,
Number
& delta_s,
55
Number
& delta_c,
Number
& delta_d);
56
61
bool
PerturbForWrongInertia
(
Number
& delta_x,
Number
& delta_s,
62
Number
& delta_c,
Number
& delta_d);
63
66
void
CurrentPerturbation
(
Number
& delta_x,
Number
& delta_s,
67
Number
& delta_c,
Number
& delta_d);
68
71
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
73
74
private
:
84
CGPerturbationHandler
(
const
CGPerturbationHandler
&);
85
87
void
operator=
(
const
CGPerturbationHandler
&);
89
91
CGPenaltyData
&
CGPenData
()
92
{
93
CGPenaltyData
& cg_pen_data =
94
static_cast<
CGPenaltyData
&
>
(
IpData
().
AdditionalData
());
95
DBG_ASSERT
(dynamic_cast<CGPenaltyData*>(&
IpData
().AdditionalData()));
96
return
cg_pen_data;
97
}
98
100
CGPenaltyCq
&
CGPenCq
()
101
{
102
CGPenaltyCq
& cg_pen_cq =
103
static_cast<
CGPenaltyCq
&
>
(
IpCq
().
AdditionalCq
());
104
DBG_ASSERT
(dynamic_cast<CGPenaltyCq*>(&
IpCq
().AdditionalCq()));
105
return
cg_pen_cq;
106
}
107
111
Number
delta_x_last_
;
113
Number
delta_s_last_
;
115
Number
delta_c_last_
;
117
Number
delta_d_last_
;
119
124
Number
delta_x_curr_
;
126
Number
delta_s_curr_
;
128
Number
delta_c_curr_
;
130
Number
delta_d_curr_
;
132
135
bool
get_deltas_for_wrong_inertia_called_
;
136
140
enum
DegenType
141
{
142
NOT_YET_DETERMINED
,
143
NOT_DEGENERATE
,
144
DEGENERATE
145
};
146
149
DegenType
hess_degenerate_
;
150
153
DegenType
jac_degenerate_
;
154
158
Index
degen_iters_
;
159
161
enum
TrialStatus
162
{
163
NO_TEST
,
164
TEST_DELTA_C_EQ_0_DELTA_X_EQ_0
,
165
TEST_DELTA_C_GT_0_DELTA_X_EQ_0
,
166
TEST_DELTA_C_EQ_0_DELTA_X_GT_0
,
167
TEST_DELTA_C_GT_0_DELTA_X_GT_0
168
};
169
171
TrialStatus
test_status_
;
173
177
Number
delta_xs_max_
;
179
Number
delta_xs_min_
;
181
Number
delta_xs_first_inc_fact_
;
183
Number
delta_xs_inc_fact_
;
185
Number
delta_xs_dec_fact_
;
187
Number
delta_xs_init_
;
189
Number
delta_cd_val_
;
191
Number
delta_cd_exp_
;
195
bool
reset_last_
;
197
Index
degen_iters_max_
;
200
bool
perturb_always_cd_
;
202
204
Number
penalty_max_
;
206
Number
mult_diverg_feasibility_tol_
;
207
213
bool
get_deltas_for_wrong_inertia
(
Number
& delta_x,
Number
& delta_s,
214
Number
& delta_c,
Number
& delta_d);
215
219
void
finalize_test
();
221
Number
delta_cd
();
223
224
};
225
226
}
// namespace Ipopt
227
228
#endif
Generated on Mon Oct 21 2013 19:08:15 for Ipopt by
1.8.4