Ipopt  3.12.12
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
parametricTNLP.hpp
Go to the documentation of this file.
1 // Copyright 2010 Hans Pirnay
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Date : 2010-01-05
6 
7 #ifndef __PARAMETRICTNLPEXAMPLE_HPP__
8 #define __PARAMETRICTNLPEXAMPLE_HPP__
9 
10 #include "IpTNLP.hpp"
11 
12 namespace Ipopt
13 {
14 
15  class ParametricTNLP : public TNLP
16  {
17  public:
18 
21 
23  virtual ~ParametricTNLP();
24 
28  virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g,
29  Index& nnz_h_lag, IndexStyleEnum& index_style);
30 
32  virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u,
33  Index m, Number* g_l, Number* g_u);
34 
36  virtual bool get_starting_point(Index n, bool init_x, Number* x,
37  bool init_z, Number* z_L, Number* z_U,
38  Index m, bool init_lambda,
39  Number* lambda);
40 
42  virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value);
43 
45  virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f);
46 
48  virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g);
49 
54  virtual bool eval_jac_g(Index n, const Number* x, bool new_x,
55  Index m, Index nele_jac, Index* iRow, Index *jCol,
56  Number* values);
57 
62  virtual bool eval_h(Index n, const Number* x, bool new_x,
63  Number obj_factor, Index m, const Number* lambda,
64  bool new_lambda, Index nele_hess, Index* iRow,
65  Index* jCol, Number* values);
66 
68 
69  virtual bool get_var_con_metadata(Index n,
70  StringMetaDataMapType& var_string_md,
71  IntegerMetaDataMapType& var_integer_md,
72  NumericMetaDataMapType& var_numeric_md,
73  Index m,
74  StringMetaDataMapType& con_string_md,
75  IntegerMetaDataMapType& con_integer_md,
76  NumericMetaDataMapType& con_numeric_md);
77 
81  virtual void finalize_solution(SolverReturn status,
82  Index n, const Number* x, const Number* z_L, const Number* z_U,
83  Index m, const Number* g, const Number* lambda,
84  Number obj_value,
85  const IpoptData* ip_data,
86  IpoptCalculatedQuantities* ip_cq);
87 
90  virtual void finalize_metadata(Index n,
91  const StringMetaDataMapType& var_string_md,
92  const IntegerMetaDataMapType& var_integer_md,
93  const NumericMetaDataMapType& var_numeric_md,
94  Index m,
95  const StringMetaDataMapType& con_string_md,
96  const IntegerMetaDataMapType& con_integer_md,
97  const NumericMetaDataMapType& con_numeric_md);
99 
100  private:
115 
116 
117  /* Nominal and perturbed parameter values */
120 
123  };
124 
125 }
126 
127 #endif
std::map< std::string, std::vector< Number > > NumericMetaDataMapType
Definition: IpTNLP.hpp:86
Number * x
Input: Starting point Output: Optimal solution.
int Index
Type for all incides.
virtual 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.
virtual 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)
Method to return: 1) The structure of the hessian of the lagrangian (if &quot;values&quot; is NULL) 2) The valu...
Number Number Index Number Number Index Index Index index_style
indexing style for iRow &amp; jCol, 0 for C style, 1 for Fortran style
virtual bool eval_jac_g(Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values)
Method to return: 1) The structure of the jacobian (if &quot;values&quot; is NULL) 2) The values of the jacobia...
Number Number Index m
Number of constraints.
virtual void finalize_metadata(Index n, const StringMetaDataMapType &var_string_md, const IntegerMetaDataMapType &var_integer_md, const NumericMetaDataMapType &var_numeric_md, Index m, const StringMetaDataMapType &con_string_md, const IntegerMetaDataMapType &con_integer_md, const NumericMetaDataMapType &con_numeric_md)
This method is called just before finalize solution.
Number Number * g
Values of constraint at final point (output only - ignored if set to NULL)
virtual bool eval_f(Index n, const Number *x, bool new_x, Number &obj_value)
Method to return the objective value.
ParametricTNLP()
default constructor
virtual bool get_var_con_metadata(Index n, StringMetaDataMapType &var_string_md, IntegerMetaDataMapType &var_integer_md, NumericMetaDataMapType &var_numeric_md, Index m, StringMetaDataMapType &con_string_md, IntegerMetaDataMapType &con_integer_md, NumericMetaDataMapType &con_numeric_md)
overload this method to return any meta data for the variables and the constraints ...
SolverReturn
enum for the return from the optimize algorithm (obviously we need to add more)
Definition: IpAlgTypes.hpp:22
virtual bool eval_grad_f(Index n, const Number *x, bool new_x, Number *grad_f)
Method to return the gradient of the objective.
Number Number Index Number Number Index nele_jac
Number of non-zero elements in constraint Jacobian.
virtual 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.
virtual 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)
This method is called when the algorithm is complete so the TNLP can store/write the solution...
std::map< std::string, std::vector< Index > > IntegerMetaDataMapType
Definition: IpTNLP.hpp:85
ParametricTNLP & operator=(const ParametricTNLP &)
double Number
Type for all number.
Number Number Index Number Number Index Index nele_hess
Number of non-zero elements in Hessian of Lagrangian.
std::map< std::string, std::vector< std::string > > StringMetaDataMapType
Definition: IpTNLP.hpp:84
IndexStyleEnum
overload this method to return the number of variables and constraints, and the number of non-zeros i...
Definition: IpTNLP.hpp:80
virtual 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.
virtual bool eval_g(Index n, const Number *x, bool new_x, Index m, Number *g)
Method to return the constraint residuals.
virtual ~ParametricTNLP()
default destructor