26 #ifndef CASADI_IPOPT_INTERFACE_HPP
27 #define CASADI_IPOPT_INTERFACE_HPP
29 #include <casadi/interfaces/ipopt/casadi_nlpsol_ipopt_export.h>
30 #include "casadi/core/nlpsol_impl.hpp"
31 #include "casadi/core/timing.hpp"
78 double *
gk, *grad_fk, *jac_gk, *hess_lk, *grad_lk;
81 std::vector<double> inf_pr, inf_du, mu,
d_norm, regularization_size,
120 std::string
class_name()
const override {
return "IpoptInterface";}
134 void init(
const Dict& opts)
override;
140 int init_mem(
void* mem)
const override;
146 Dict get_stats(
void* mem)
const override;
149 void set_work(
void* mem,
const double**& arg,
double**& res,
150 casadi_int*& iw,
double*& w)
const override;
153 int solve(
void* mem)
const override;
162 void finalize_solution(
IpoptMemory* m,
const double* x,
const double* z_L,
const double* z_U,
163 const double* g,
const double* lambda,
double obj_value,
164 int iter_count)
const;
165 bool get_bounds_info(
IpoptMemory* m,
double* x_l,
double* x_u,
166 double* g_l,
double* g_u)
const;
167 bool get_starting_point(
IpoptMemory* m,
bool init_x,
double* x,
168 bool init_z,
double* z_L,
double* z_U,
169 bool init_lambda,
double* lambda)
const;
170 void get_nlp_info(
IpoptMemory* m,
int& nx,
int& ng,
171 int& nnz_jac_g,
int& nnz_h_lag)
const;
172 int get_number_of_nonlinear_variables()
const;
173 bool get_list_of_nonlinear_variables(
int num_nonlin_vars,
int* pos_nonlin_vars)
const;
174 bool intermediate_callback(
IpoptMemory* m,
const double* x,
const double* z_L,
175 const double* z_U,
const double* g,
176 const double* lambda,
double obj_value,
int iter,
177 double inf_pr,
double inf_du,
double mu,
double d_norm,
178 double regularization_size,
double alpha_du,
double alpha_pr,
179 int ls_trials,
bool full_callback)
const;
180 bool get_var_con_metadata(std::map<std::string, std::vector<std::string> >& var_string_md,
181 std::map<std::string, std::vector<int> >& var_integer_md,
182 std::map<std::string, std::vector<double> >& var_numeric_md,
183 std::map<std::string, std::vector<std::string> >& con_string_md,
184 std::map<std::string, std::vector<int> >& con_integer_md,
185 std::map<std::string, std::vector<double> >& con_numeric_md)
const;
Helper class for C code generation.
Helper class for Serialization.
'ipopt' plugin for Nlpsol
void free_mem(void *mem) const override
Free memory block.
static const std::string meta_doc
A documentation string.
bool convexify_
convexify?
const Options & get_options() const override
Options.
static ProtoFunction * deserialize(DeserializingStream &s)
Deserialize into MX.
bool exact_hessian_
Exact Hessian?
ConvexifyData convexify_data_
Data for convexification.
std::string class_name() const override
Get type name.
std::string inactive_lam_strategy_
static const Options options_
Options.
Dict opts_
All IPOPT options.
static Nlpsol * creator(const std::string &name, const Function &nlp)
Create a new NLP Solver.
std::string codegen_mem_type() const override
Thread-local memory object type.
double inactive_lam_value_
void * alloc_mem() const override
Create memory block.
const char * plugin_name() const override
bool pass_nonlinear_variables_
std::vector< bool > nl_ex_
NLP solver storage class.
Base class for FunctionInternal and LinsolInternal.
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
std::map< std::string, std::vector< double > > con_numeric_md
std::map< std::string, std::vector< std::string > > var_string_md
std::map< std::string, std::vector< std::string > > con_string_md
const char * return_status
std::vector< double > d_norm
std::map< std::string, std::vector< int > > var_integer_md
std::map< std::string, std::vector< double > > var_numeric_md
std::vector< double > alpha_du
std::vector< int > ls_trials
std::map< std::string, std::vector< int > > con_integer_md
Options metadata for a class.