Ipopt  3.11.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
SensAmplTNLP.hpp
Go to the documentation of this file.
1 // Copyright 2009 Hans Pirnay
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Date : 2009-05-11
6 
7 #ifndef __SENSAMPLTNLP_HPP__
8 #define __SENSAMPLTNLP_HPP__
9 
10 #include "AmplTNLP.hpp"
11 
12 namespace Ipopt
13 {
14 
15  DECLARE_STD_EXCEPTION(SUFFIX_EMPTY);
16 
17  class SensAmplTNLP : public AmplTNLP
18  {
22  public:
25  const SmartPtr<OptionsList> options,
26  char**& argv,
27  SmartPtr<AmplSuffixHandler> suffix_handler= NULL,
28  bool allow_discrete = false,
29  SmartPtr<AmplOptionsList> ampl_options_list= NULL ,
30  const char* ampl_option_string = NULL ,
31  const char* ampl_invokation_string = NULL,
32  const char* ampl_banner_string = NULL,
33  std::string* nl_file_content = NULL);
34 
35  virtual ~SensAmplTNLP();
36 
38  virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u,
39  Index m, Number* g_l, Number* g_u);
40 
42 
43  virtual void finalize_metadata(Index n,
44  const StringMetaDataMapType& var_string_md,
45  const IntegerMetaDataMapType& var_integer_md,
46  const NumericMetaDataMapType& var_numeric_md,
47  Index m,
48  const StringMetaDataMapType& con_string_md,
49  const IntegerMetaDataMapType& con_integer_md,
50  const NumericMetaDataMapType& con_numeric_md);
51 
52  virtual void finalize_solution(SolverReturn status,
53  Index n, const Number* x, const Number* z_L, const Number* z_U,
54  Index m, const Number* g, const Number* lambda,
55  Number obj_value,
56  const IpoptData* ip_data,
58 
59  const Index* get_index_suffix(const char* suffix_name);
60 
61  std::vector<Index> get_index_suffix_vec(const char* suffix_name);
62 
63  const Number* get_number_suffix(const char* suffix_name);
64 
65  std::vector<Number> get_number_suffix_vec(const char* suffix_name);
66 
67  const Index* get_index_suffix_constr(const char* suffix_name);
68 
69  std::vector<Index> get_index_suffix_constr_vec(const char* suffix_name);
70 
71  const Number* get_number_suffix_constr(const char* suffix_name);
72 
73  virtual bool get_var_con_metadata(Index n,
74  StringMetaDataMapType& var_string_md,
75  IntegerMetaDataMapType& var_integer_md,
76  NumericMetaDataMapType& var_numeric_md,
77  Index m,
78  StringMetaDataMapType& con_string_md,
79  IntegerMetaDataMapType& con_integer_md,
80  NumericMetaDataMapType& con_numeric_md);
81 
82  private:
83 
85  // Number* x_L;
86  //Number* x_U;
87 
90 
92 
95 
98  bool run_sens_;
100 
101  std::vector< SmartPtr<IteratesVector> > sens_sol_;
102 
103  };
104 
105 }
106 
107 #endif