Ipopt
3.11.8
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Interfaces
IpTNLP.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2009 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpTNLP.hpp 2212 2013-04-14 14:51:52Z stefan $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPTNLP_HPP__
10
#define __IPTNLP_HPP__
11
12
#include "
IpUtils.hpp
"
13
#include "
IpReferenced.hpp
"
14
#include "
IpException.hpp
"
15
#include "
IpAlgTypes.hpp
"
16
#include "
IpReturnCodes.hpp
"
17
18
#include <map>
19
20
namespace
Ipopt
21
{
22
// forward declarations
23
class
IpoptData;
24
class
IpoptCalculatedQuantities;
25
class
IteratesVector;
26
50
class
TNLP
:
public
ReferencedObject
51
{
52
public
:
54
enum
LinearityType
55
{
56
LINEAR
,
57
NON_LINEAR
58
};
59
62
TNLP
()
63
{}
64
66
virtual
~TNLP
()
67
{}
69
70
DECLARE_STD_EXCEPTION
(INVALID_TNLP);
71
80
enum
IndexStyleEnum
{
C_STYLE
=0,
FORTRAN_STYLE
=1 };
81
virtual
bool
get_nlp_info
(
Index
& n,
Index
&
m
,
Index
& nnz_jac_g,
82
Index
& nnz_h_lag,
IndexStyleEnum
&
index_style
)=0;
83
84
typedef
std::map<std::string, std::vector<std::string> >
StringMetaDataMapType
;
85
typedef
std::map<std::string, std::vector<Index> >
IntegerMetaDataMapType
;
86
typedef
std::map<std::string, std::vector<Number> >
NumericMetaDataMapType
;
87
90
virtual
bool
get_var_con_metadata
(
Index
n,
91
StringMetaDataMapType
& var_string_md,
92
IntegerMetaDataMapType
& var_integer_md,
93
NumericMetaDataMapType
& var_numeric_md,
94
Index
m
,
95
StringMetaDataMapType
& con_string_md,
96
IntegerMetaDataMapType
& con_integer_md,
97
NumericMetaDataMapType
& con_numeric_md)
98
99
{
100
return
false
;
101
}
102
109
virtual
bool
get_bounds_info
(
Index
n,
Number
* x_l,
Number
* x_u,
110
Index
m
,
Number
* g_l,
Number
* g_u)=0;
111
119
virtual
bool
get_scaling_parameters
(
Number
&
obj_scaling
,
120
bool
& use_x_scaling,
Index
n,
121
Number
*
x_scaling
,
122
bool
& use_g_scaling,
Index
m
,
123
Number
*
g_scaling
)
124
{
125
return
false
;
126
}
127
132
virtual
bool
get_variables_linearity
(
Index
n,
LinearityType
* var_types)
133
{
134
return
false
;
135
}
136
140
virtual
bool
get_constraints_linearity
(
Index
m
,
LinearityType
* const_types)
141
{
142
return
false
;
143
}
144
152
virtual
bool
get_starting_point
(
Index
n,
bool
init_x,
Number
*
x
,
153
bool
init_z,
Number
* z_L,
Number
* z_U,
154
Index
m
,
bool
init_lambda,
155
Number
* lambda)=0;
156
161
virtual
bool
get_warm_start_iterate
(
IteratesVector
& warm_start_iterate)
162
{
163
return
false
;
164
}
165
167
virtual
bool
eval_f
(
Index
n,
const
Number
*
x
,
bool
new_x,
168
Number
& obj_value)=0;
169
172
virtual
bool
eval_grad_f
(
Index
n,
const
Number
*
x
,
bool
new_x,
173
Number
* grad_f)=0;
174
176
virtual
bool
eval_g
(
Index
n,
const
Number
*
x
,
bool
new_x,
177
Index
m
,
Number
*
g
)=0;
183
virtual
bool
eval_jac_g
(
Index
n,
const
Number
*
x
,
bool
new_x,
184
Index
m
,
Index
nele_jac
,
Index
* iRow,
185
Index
*jCol,
Number
* values)=0;
186
196
virtual
bool
eval_h
(
Index
n,
const
Number
*
x
,
bool
new_x,
197
Number
obj_factor,
Index
m
,
const
Number
* lambda,
198
bool
new_lambda,
Index
nele_hess
,
199
Index
* iRow,
Index
* jCol,
Number
* values)
200
{
201
return
false
;
202
}
204
208
virtual
void
finalize_solution
(
SolverReturn
status,
209
Index
n,
const
Number
*
x
,
const
Number
* z_L,
const
Number
* z_U,
210
Index
m
,
const
Number
*
g
,
const
Number
* lambda,
211
Number
obj_value,
212
const
IpoptData
* ip_data,
213
IpoptCalculatedQuantities
* ip_cq)=0;
226
virtual
void
finalize_metadata
(
Index
n,
227
const
StringMetaDataMapType
& var_string_md,
228
const
IntegerMetaDataMapType
& var_integer_md,
229
const
NumericMetaDataMapType
& var_numeric_md,
230
Index
m
,
231
const
StringMetaDataMapType
& con_string_md,
232
const
IntegerMetaDataMapType
& con_integer_md,
233
const
NumericMetaDataMapType
& con_numeric_md)
234
{}
235
236
240
virtual
bool
intermediate_callback
(
AlgorithmMode
mode,
241
Index
iter,
Number
obj_value,
242
Number
inf_pr,
Number
inf_du,
243
Number
mu,
Number
d_norm,
244
Number
regularization_size,
245
Number
alpha_du,
Number
alpha_pr,
246
Index
ls_trials,
247
const
IpoptData
* ip_data,
248
IpoptCalculatedQuantities
* ip_cq)
249
{
250
return
true
;
251
}
253
267
virtual
Index
get_number_of_nonlinear_variables
()
268
{
269
return
-1;
270
}
271
272
virtual
bool
get_list_of_nonlinear_variables
(
Index
num_nonlin_vars,
273
Index
* pos_nonlin_vars)
274
{
275
return
false
;
276
}
278
279
private
:
289
//TNLP();
290
292
TNLP
(
const
TNLP
&);
293
295
void
operator=
(
const
TNLP
&);
297
};
298
299
}
// namespace Ipopt
300
301
#endif
Generated by
1.8.3.1