Main Page
Namespaces
Classes
Files
File List
File Members
build
buildd
coinor-ipopt-3.10.2
Ipopt
src
Apps
CompositeInterface
CompositeNLP.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: CompositeNLP.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPCOMPOSITENLP_HPP__
10
#define __IPCOMPOSITENLP_HPP__
11
12
#include "
IpNLP.hpp
"
13
14
namespace
Ipopt
15
{
16
17
/* forward declaration */
18
class
SymLinearSolver;
19
25
class
CompositeNLP
:
public
NLP
26
{
27
public
:
31
CompositeNLP
(std::vector<
SmartPtr<NLP>
> nlps,
SmartPtr<VectorSpace>
q_space,
32
std::vector<
SmartPtr<VectorSpace>
> linking_eqn_c_spaces,
33
std::vector<
SmartPtr<Matrix>
> Jx_linking_eqns,
34
std::vector<
SmartPtr<Matrix>
> Jq_linking_eqns);
35
37
virtual
~CompositeNLP
();
39
42
DECLARE_STD_EXCEPTION
(INVALID_JACOBIAN_DIMENSION_FOR_LINKING_EQUATIONS);
44
47
virtual
bool
ProcessOptions
(
const
OptionsList
& options,
48
const
std::string& prefix);
49
52
virtual
bool
GetSpaces
(
SmartPtr<const VectorSpace>
& x_space,
53
SmartPtr<const VectorSpace>
& c_space,
54
SmartPtr<const VectorSpace>
& d_space,
55
SmartPtr<const VectorSpace>
& x_l_space,
56
SmartPtr<const MatrixSpace>
& px_l_space,
57
SmartPtr<const VectorSpace>
& x_u_space,
58
SmartPtr<const MatrixSpace>
& px_u_space,
59
SmartPtr<const VectorSpace>
& d_l_space,
60
SmartPtr<const MatrixSpace>
& pd_l_space,
61
SmartPtr<const VectorSpace>
& d_u_space,
62
SmartPtr<const MatrixSpace>
& pd_u_space,
63
SmartPtr<const MatrixSpace>
& Jac_c_space,
64
SmartPtr<const MatrixSpace>
& Jac_d_space,
65
SmartPtr<const SymMatrixSpace>
& Hess_lagrangian_space);
66
68
virtual
bool
GetBoundsInformation
(
const
Matrix
& Px_L,
69
Vector
&
x_L
,
70
const
Matrix
& Px_U,
71
Vector
&
x_U
,
72
const
Matrix
& Pd_L,
73
Vector
& d_L,
74
const
Matrix
& Pd_U,
75
Vector
& d_U);
76
79
virtual
bool
GetStartingPoint
(
80
SmartPtr<Vector>
x
,
81
bool
need_x,
82
SmartPtr<Vector>
y_c,
83
bool
need_y_c,
84
SmartPtr<Vector>
y_d,
85
bool
need_y_d,
86
SmartPtr<Vector>
z_L,
87
bool
need_z_L,
88
SmartPtr<Vector>
z_U,
89
bool
need_z_U
90
);
92
95
virtual
bool
Eval_f
(
const
Vector
& x,
Number
& f);
96
97
virtual
bool
Eval_grad_f
(
const
Vector
& x,
Vector
& g_f);
98
99
virtual
bool
Eval_c
(
const
Vector
& x,
Vector
& c);
100
101
virtual
bool
Eval_jac_c
(
const
Vector
& x,
Matrix
& jac_c);
102
103
virtual
bool
Eval_d
(
const
Vector
& x,
Vector
& d);
104
105
virtual
bool
Eval_jac_d
(
const
Vector
& x,
Matrix
& jac_d);
106
107
virtual
bool
Eval_h
(
const
Vector
& x,
108
Number
obj_factor,
109
const
Vector
& yc,
110
const
Vector
& yd,
111
SymMatrix
& h);
113
117
SmartPtr<SymLinearSolver>
CreateLinearSolver
();
119
private
:
129
CompositeNLP
();
130
132
CompositeNLP
(
const
CompositeNLP
&);
133
135
void
operator=
(
const
CompositeNLP
&);
137
139
SmartPtr<const Journalist>
jnlst_
;
140
142
std::vector<SmartPtr<NLP> >
nlps_
;
143
145
SmartPtr<VectorSpace>
q_space_
;
146
148
std::vector<SmartPtr<VectorSpace> >
linking_eqn_c_spaces_
;
149
157
std::vector<SmartPtr<Matrix> >
Jx_linking_eqns_
;
158
161
std::vector<SmartPtr<Matrix> >
Jq_linking_eqns_
;
163
};
164
165
}
// namespace Ipopt
166
167
#endif
Generated on Fri Jun 29 2012 06:35:13 by
1.8.1.1