Ipopt
3.11.8
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
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 by
1.8.3.1