Ipopt  3.11.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpIpoptApplication.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2010 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpIpoptApplication.hpp 2346 2013-07-01 13:03:35Z stefan $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8 
9 #ifndef __IPIPOPTAPPLICATION_HPP__
10 #define __IPIPOPTAPPLICATION_HPP__
11 
12 #ifndef IPOPT_EXPORT
13 #ifdef _MSC_VER
14 #ifdef IPOPT_DLL
15 #define IPOPT_EXPORT(type) __declspec(dllexport) type __cdecl
16 #else
17 #define IPOPT_EXPORT(type) type __cdecl
18 #endif
19 #else
20 #define IPOPT_EXPORT(type) type
21 #endif
22 #endif
23 
24 #include <iostream>
25 
26 #include "IpJournalist.hpp"
27 #include "IpTNLP.hpp"
28 #include "IpNLP.hpp"
29 /* Return codes for the Optimize call for an application */
30 #include "IpReturnCodes.hpp"
31 
32 namespace Ipopt
33 {
34  DECLARE_STD_EXCEPTION(IPOPT_APPLICATION_ERROR);
35 
36  /* forward declarations */
37  class IpoptAlgorithm;
38  class IpoptNLP;
39  class IpoptData;
40  class IpoptCalculatedQuantities;
41  class AlgorithmBuilder;
42  class RegisteredOptions;
43  class OptionsList;
44  class SolveStatistics;
45 
48  {
49  public:
50  IpoptApplication(bool create_console_out = true,
51  bool create_empty = false);
52 
56  SmartPtr<OptionsList> options,
57  SmartPtr<Journalist> jnlst);
58 
59  virtual ~IpoptApplication();
60 
65 
73  virtual ApplicationReturnStatus Initialize(std::istream& is);
83  virtual ApplicationReturnStatus Initialize(std::string params_file);
92 
97 
100 
103 
110 
118 
121  virtual bool OpenOutputFile(std::string file_name, EJournalLevel print_level);
122 
127  {
128  return jnlst_;
129  }
130 
134  {
135  return reg_options_;
136  }
137 
140  {
141  return options_;
142  }
143 
146  {
147  return ConstPtr(options_);
148  }
149 
153 
156 
159 
162 
166 
171  void PrintCopyrightMessage();
172 
175  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
177 
179  static void
181 
182  private:
192  // IpoptApplication();
193 
196 
198  void operator=(const IpoptApplication&);
200 
204 
210 
213 
216 
219 
223 
227 
231 
236 
241 
245 
254  };
255 
256 } // namespace Ipopt
257 
258 extern "C" IPOPT_EXPORT(class Ipopt::IpoptApplication *) IpoptApplicationFactory();
259 
260 #endif