Minotaur 0.4.1
Docs for developers
IpoptEngineTnlp.h
Go to the documentation of this file.
1//
2// Minotaur -- It's only 1/2 bull
3//
4// (C)opyright 2008 - 2025 The Minotaur Team.
5//
6
15#ifndef MINOTAURIPOPTENGINETNLP_H
16#define MINOTAURIPOPTENGINETNLP_H
17
18namespace Ipopt {
19 class IpoptFunInterface : public TNLP
20 {
21 public:
22
25 Minotaur::ProblemPtr problem,
27
30
33
35 bool eval_f(Index n, const Number* x, bool new_x,
36 Number& obj_value);
37
39 bool eval_g(Index n, const Number* x, bool new_x,
40 Index m, Number* g);
41
43 bool eval_grad_f(Index n, const Number* x,
44 bool new_x, Number* grad_f);
45
51 bool eval_jac_g(Index n, const Number* x,
52 bool new_x, Index m, Index nele_jac,
53 Index* iRow, Index *jCol,
54 Number* values);
55
63 bool eval_h(Index n, const Number* x, bool new_x,
64 Number obj_factor, Index m,
65 const Number* lambda, bool new_lambda,
66 Index nele_hess, Index* iRow,
67 Index* jCol, Number* values);
68
69
74 void finalize_solution(SolverReturn status,
75 Index n, const Number* x, const Number* z_L,
76 const Number* z_U, Index m, const Number* g,
77 const Number* lambda, Number obj_value,
78 const IpoptData* ip_data,
79 IpoptCalculatedQuantities* ip_cq);
80
82 bool get_bounds_info(Index n, Number* x_l,
83 Number* x_u, Index m,
84 Number* g_l, Number* g_u);
85
87 bool get_nlp_info(Index& n, Index& m,
88 Index& nnz_jac_g, Index&
89 nnz_h_lag, IndexStyleEnum& index_style);
90
93
95 double getSolutionValue() const;
96
98 bool get_starting_point(Index n, bool init_x,
99 Number* x, bool init_z,
100 Number* z_L, Number* z_U,
101 Index m, bool init_lambda,
102 Number* lambda);
103
105 void setSolution(Minotaur::IpoptSolPtr sol) {sol_ = sol;}
106
107
108 private:
111
113 IpoptFunInterface& operator=(const IpoptFunInterface&);
114
116 double bOff_;
117
119 double bTol_;
120
123 bool evalWithinBnds_;
124
126 Minotaur::LoggerPtr logger_;
127
129 Minotaur::ProblemPtr problem_;
130
138
149 double *pullXToBnds_(const Number* x, Index n);
150 };
151}
152#endif
Definition: IpoptEngineTnlp.h:20
bool eval_jac_g(Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values)
Definition: IpoptEngine.cpp:1116
bool get_bounds_info(Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u)
Method to return the bounds for my problem.
Definition: IpoptEngine.cpp:855
bool eval_f(Index n, const Number *x, bool new_x, Number &obj_value)
Method to return the objective value.
Definition: IpoptEngine.cpp:985
bool eval_h(Index n, const Number *x, bool new_x, Number obj_factor, Index m, const Number *lambda, bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values)
Definition: IpoptEngine.cpp:1078
bool eval_g(Index n, const Number *x, bool new_x, Index m, Number *g)
Method to return the constraint residuals.
Definition: IpoptEngine.cpp:1004
bool eval_grad_f(Index n, const Number *x, bool new_x, Number *grad_f)
Method to return the gradient of the objective.
Definition: IpoptEngine.cpp:1043
bool get_nlp_info(Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style)
Method to return some info about the nlp.
Definition: IpoptEngine.cpp:894
bool get_starting_point(Index n, bool init_x, Number *x, bool init_z, Number *z_L, Number *z_U, Index m, bool init_lambda, Number *lambda)
Method to return the starting point for the algorithm.
Definition: IpoptEngine.cpp:919
double getSolutionValue() const
Get solution value.
Definition: IpoptEngine.cpp:1167
void finalize_solution(SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
Definition: IpoptEngine.cpp:1153
void setSolution(Minotaur::IpoptSolPtr sol)
Set solution.
Definition: IpoptEngineTnlp.h:105
IpoptFunInterface(Minotaur::EnvPtr env, Minotaur::ProblemPtr problem, Minotaur::IpoptSolPtr sol)
Default constructor.
Definition: IpoptEngine.cpp:824
Minotaur::IpoptSolPtr getSolution()
Get solution.
Definition: IpoptEngineTnlp.h:92
~IpoptFunInterface()
default destructor.
Definition: IpoptEngine.cpp:836
void copySolution(Minotaur::IpoptSolPtr sol)
Copy the solution explicitly (without sharing pointers).
Definition: IpoptEngine.cpp:846
Definition: Environment.h:28
Definition: IpoptEngine.h:61
Definition: Logger.h:37
Definition: Problem.h:74

Minotaur source code documented by Doxygen 1.9.4 on Fri Apr 25 2025