Main Page
Namespaces
Classes
Files
File List
File Members
var
build
temp
tmp.niCloInx4p
4.0-0-0
coinor-ipopt
coinor-ipopt-3.10.2
Ipopt
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 Mar 17 2014 19:49:13 by
1.8.1.2