Main Page
Namespaces
Classes
Files
File List
File Members
tmp
buildd
coinor-ipopt-3.10.2
Ipopt
src
Algorithm
IpPDPerturbationHandler.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2007 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpPDPerturbationHandler.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2005-08-04
8
9
#ifndef __IPPDPERTURBATIONHANDLER_HPP__
10
#define __IPPDPERTURBATIONHANDLER_HPP__
11
12
#include "
IpAlgStrategy.hpp
"
13
14
namespace
Ipopt
15
{
16
24
class
PDPerturbationHandler
:
public
AlgorithmStrategyObject
25
{
26
public
:
30
PDPerturbationHandler
();
32
virtual
~PDPerturbationHandler
()
33
{}
35
36
/* overloaded from AlgorithmStrategyObject */
37
virtual
bool
InitializeImpl
(
const
OptionsList
& options,
38
const
std::string& prefix);
39
46
virtual
bool
ConsiderNewSystem
(
Number
& delta_x,
Number
& delta_s,
47
Number
& delta_c,
Number
& delta_d);
48
53
virtual
bool
PerturbForSingularity
(
Number
& delta_x,
Number
& delta_s,
54
Number
& delta_c,
Number
& delta_d);
55
60
virtual
bool
PerturbForWrongInertia
(
Number
& delta_x,
Number
& delta_s,
61
Number
& delta_c,
Number
& delta_d);
62
65
virtual
void
CurrentPerturbation
(
Number
& delta_x,
Number
& delta_s,
66
Number
& delta_c,
Number
& delta_d);
67
70
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
72
73
protected
:
83
PDPerturbationHandler
(
const
PDPerturbationHandler
&);
84
86
void
operator=
(
const
PDPerturbationHandler
&);
88
92
Number
delta_x_last_
;
94
Number
delta_s_last_
;
96
Number
delta_c_last_
;
98
Number
delta_d_last_
;
100
105
Number
delta_x_curr_
;
107
Number
delta_s_curr_
;
109
Number
delta_c_curr_
;
111
Number
delta_d_curr_
;
113
116
bool
get_deltas_for_wrong_inertia_called_
;
117
121
enum
DegenType
122
{
123
NOT_YET_DETERMINED
,
124
NOT_DEGENERATE
,
125
DEGENERATE
126
};
127
130
DegenType
hess_degenerate_
;
131
134
DegenType
jac_degenerate_
;
135
139
Index
degen_iters_
;
140
142
enum
TrialStatus
143
{
144
NO_TEST
,
145
TEST_DELTA_C_EQ_0_DELTA_X_EQ_0
,
146
TEST_DELTA_C_GT_0_DELTA_X_EQ_0
,
147
TEST_DELTA_C_EQ_0_DELTA_X_GT_0
,
148
TEST_DELTA_C_GT_0_DELTA_X_GT_0
149
};
150
152
TrialStatus
test_status_
;
154
158
Number
delta_xs_max_
;
160
Number
delta_xs_min_
;
162
Number
delta_xs_first_inc_fact_
;
164
Number
delta_xs_inc_fact_
;
166
Number
delta_xs_dec_fact_
;
168
Number
delta_xs_init_
;
170
Number
delta_cd_val_
;
172
Number
delta_cd_exp_
;
176
bool
reset_last_
;
178
Index
degen_iters_max_
;
181
bool
perturb_always_cd_
;
183
189
bool
get_deltas_for_wrong_inertia
(
Number
& delta_x,
Number
& delta_s,
190
Number
& delta_c,
Number
& delta_d);
191
195
void
finalize_test
();
197
Number
delta_cd
();
199
200
};
201
202
}
// namespace Ipopt
203
204
#endif
Generated on Tue Jun 26 2012 17:01:43 by
1.8.1.1