• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/coinor-ipopt-3.8.3/Ipopt/src/Interfaces/IpIpoptApplication.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2004, 2010 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpIpoptApplication.hpp 1692 2010-06-21 19:10:07Z andreasw $
00006 //
00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
00008 
00009 #ifndef __IPIPOPTAPPLICATION_HPP__
00010 #define __IPIPOPTAPPLICATION_HPP__
00011 
00012 #ifndef IPOPT_EXPORT
00013 #ifdef _MSC_VER
00014 #ifdef IPOPT_DLL
00015 #define IPOPT_EXPORT(type) __declspec(dllexport) type __cdecl
00016 #else
00017 #define IPOPT_EXPORT(type) type __cdecl
00018 #endif
00019 #else
00020 #define IPOPT_EXPORT(type) type
00021 #endif
00022 #endif
00023 
00024 #include <iostream>
00025 
00026 #include "IpJournalist.hpp"
00027 #include "IpTNLP.hpp"
00028 #include "IpNLP.hpp"
00029 /* Return codes for the Optimize call for an application */
00030 #include "IpReturnCodes.hpp"
00031 
00032 namespace Ipopt
00033 {
00034   DECLARE_STD_EXCEPTION(IPOPT_APPLICATION_ERROR);
00035 
00036   /* forward declarations */
00037   class IpoptAlgorithm;
00038   class IpoptNLP;
00039   class IpoptData;
00040   class IpoptCalculatedQuantities;
00041   class AlgorithmBuilder;
00042   class RegisteredOptions;
00043   class OptionsList;
00044   class SolveStatistics;
00045 
00047   class IpoptApplication : public ReferencedObject
00048   {
00049   public:
00050     IpoptApplication(bool create_console_out = true,
00051                      bool create_empty = false);
00052 
00055     IpoptApplication(SmartPtr<RegisteredOptions> reg_options,
00056                      SmartPtr<OptionsList> options,
00057                      SmartPtr<Journalist> jnlst);
00058 
00059     virtual ~IpoptApplication();
00060 
00064     virtual SmartPtr<IpoptApplication> clone();
00065 
00073     virtual ApplicationReturnStatus Initialize(std::string params_file = "ipopt.opt");
00074     virtual ApplicationReturnStatus Initialize(std::istream& is);
00075 
00079     virtual ApplicationReturnStatus OptimizeTNLP(const SmartPtr<TNLP>& tnlp);
00080 
00082     virtual ApplicationReturnStatus OptimizeNLP(const SmartPtr<NLP>& nlp);
00083 
00085     virtual ApplicationReturnStatus OptimizeNLP(const SmartPtr<NLP>& nlp, SmartPtr<AlgorithmBuilder>& alg_builder);
00086 
00092     virtual ApplicationReturnStatus ReOptimizeTNLP(const SmartPtr<TNLP>& tnlp);
00093 
00099     virtual ApplicationReturnStatus ReOptimizeNLP(const SmartPtr<NLP>& nlp);
00101 
00104     virtual bool OpenOutputFile(std::string file_name, EJournalLevel print_level);
00105 
00109     virtual SmartPtr<Journalist> Jnlst()
00110     {
00111       return jnlst_;
00112     }
00113 
00116     virtual SmartPtr<RegisteredOptions> RegOptions()
00117     {
00118       return reg_options_;
00119     }
00120 
00122     virtual SmartPtr<OptionsList> Options()
00123     {
00124       return options_;
00125     }
00126 
00128     virtual SmartPtr<const OptionsList> Options() const
00129     {
00130       return ConstPtr(options_);
00131     }
00132 
00135     virtual SmartPtr<SolveStatistics> Statistics();
00136 
00138     virtual SmartPtr<IpoptNLP> IpoptNLPObject();
00139 
00141     SmartPtr<IpoptData> IpoptDataObject();
00142 
00144     virtual SmartPtr<IpoptCalculatedQuantities> IpoptCQObject();
00145 
00147     SmartPtr<IpoptAlgorithm> AlgorithmObject();
00149 
00154     void PrintCopyrightMessage();
00155 
00158     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
00160 
00162     static void
00163     RegisterAllIpoptOptions(const SmartPtr<RegisteredOptions>& roptions);
00164 
00165   private:
00175     // IpoptApplication();
00176 
00178     IpoptApplication(const IpoptApplication&);
00179 
00181     void operator=(const IpoptApplication&);
00183 
00186     ApplicationReturnStatus call_optimize();
00187 
00191     bool read_params_dat_;
00193 
00195     SmartPtr<Journalist> jnlst_;
00196 
00198     SmartPtr<RegisteredOptions> reg_options_;
00199 
00201     SmartPtr<OptionsList> options_;
00202 
00205     SmartPtr<SolveStatistics> statistics_;
00206 
00209     SmartPtr<IpoptAlgorithm> alg_;
00210 
00213     SmartPtr<IpoptNLP> ip_nlp_;
00214 
00218     SmartPtr<IpoptData> ip_data_;
00219 
00223     SmartPtr<IpoptCalculatedQuantities> ip_cq_;
00224 
00227     SmartPtr<NLP> nlp_adapter_;
00228 
00232     bool inexact_algorithm_;
00235     bool replace_bounds_;
00238     bool skip_finalize_solution_call_;
00240   };
00241 
00242 } // namespace Ipopt
00243 
00244 extern "C" IPOPT_EXPORT(class Ipopt::IpoptApplication *) IpoptApplicationFactory();
00245 
00246 #endif

Generated on Sat Oct 16 2010 02:54:51 by  doxygen 1.7.1