00001 // Copyright (C) 2004, 2006 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // $Id: IpRestoPhase.hpp 759 2006-07-07 03:07:08Z andreasw $ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 00008 00009 #ifndef __IPRESTOPHASE_HPP__ 00010 #define __IPRESTOPHASE_HPP__ 00011 00012 #include "IpAlgStrategy.hpp" 00013 #include "IpIpoptNLP.hpp" 00014 #include "IpIpoptData.hpp" 00015 #include "IpIpoptCalculatedQuantities.hpp" 00016 00017 namespace Ipopt 00018 { 00019 00025 DECLARE_STD_EXCEPTION(RESTORATION_CONVERGED_TO_FEASIBLE_POINT); 00026 DECLARE_STD_EXCEPTION(RESTORATION_FAILED); 00027 DECLARE_STD_EXCEPTION(RESTORATION_MAXITER_EXCEEDED); 00028 DECLARE_STD_EXCEPTION(RESTORATION_USER_STOP); 00030 00033 class RestorationPhase : public AlgorithmStrategyObject 00034 { 00035 public: 00039 RestorationPhase() 00040 {} 00042 virtual ~RestorationPhase() 00043 {} 00045 00047 virtual bool InitializeImpl(const OptionsList& options, 00048 const std::string& prefix) = 0; 00049 00052 virtual bool PerformRestoration() = 0; 00053 00054 private: 00062 RestorationPhase(const RestorationPhase&); 00063 00065 void operator=(const RestorationPhase&); 00067 }; 00068 00069 } // namespace Ipopt 00070 00071 #endif