Ipopt Documentation  
IpAlgBuilder.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2007 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors: Carl Laird, Andreas Waechter IBM 2004-09-29
6 
7 #ifndef __IPALGBUILDER_HPP__
8 #define __IPALGBUILDER_HPP__
9 
10 #include "IpIpoptAlg.hpp"
11 #include "IpReferenced.hpp"
12 #include "IpAugSystemSolver.hpp"
13 #include "IpPDSystemSolver.hpp"
14 
15 namespace Ipopt
16 {
17 
18 // forward declarations
19 class IterationOutput;
20 class HessianUpdater;
21 class ConvergenceCheck;
22 class SearchDirectionCalculator;
23 class EqMultiplierCalculator;
24 class IterateInitializer;
25 class LineSearch;
26 class MuUpdate;
27 
49 {
50 public:
55  SmartPtr<AugSystemSolver> custom_solver = NULL
56  );
57 
60  { }
61 
63 
67  static void RegisterOptions(
69  );
71 
86  virtual SmartPtr<SymLinearSolver> SymLinearSolverFactory(
87  const Journalist& jnlst,
88  const OptionsList& options,
89  const std::string& prefix
90  );
91 
97  SmartPtr<SymLinearSolver> GetSymLinearSolver(
98  const Journalist& jnlst,
99  const OptionsList& options,
100  const std::string& prefix
101  );
102 
110  virtual SmartPtr<AugSystemSolver> AugSystemSolverFactory(
111  const Journalist& jnlst,
112  const OptionsList& options,
113  const std::string& prefix
114  );
115 
121  SmartPtr<AugSystemSolver> GetAugSystemSolver(
122  const Journalist& jnlst,
123  const OptionsList& options,
124  const std::string& prefix
125  );
126 
136  virtual SmartPtr<PDSystemSolver> PDSystemSolverFactory(
137  const Journalist& jnlst,
138  const OptionsList& options,
139  const std::string& prefix
140  );
141 
147  SmartPtr<PDSystemSolver> GetPDSystemSolver(
148  const Journalist& jnlst,
149  const OptionsList& options,
150  const std::string& prefix
151  );
153 
160  virtual void BuildIpoptObjects(
161  const Journalist& jnlst,
162  const OptionsList& options,
163  const std::string& prefix,
164  const SmartPtr<NLP>& nlp,
165  SmartPtr<IpoptNLP>& ip_nlp,
166  SmartPtr<IpoptData>& ip_data,
168  );
169 
186  virtual SmartPtr<IpoptAlgorithm> BuildBasicAlgorithm(
187  const Journalist& jnlst,
188  const OptionsList& options,
189  const std::string& prefix
190  );
191 
198  virtual SmartPtr<IterationOutput> BuildIterationOutput(
199  const Journalist& jnlst,
200  const OptionsList& options,
201  const std::string& prefix
202  );
203 
210  virtual SmartPtr<HessianUpdater> BuildHessianUpdater(
211  const Journalist& jnlst,
212  const OptionsList& options,
213  const std::string& prefix
214  );
215 
222  virtual SmartPtr<ConvergenceCheck> BuildConvergenceCheck(
223  const Journalist& jnlst,
224  const OptionsList& options,
225  const std::string& prefix
226  );
227 
241  virtual SmartPtr<SearchDirectionCalculator> BuildSearchDirectionCalculator(
242  const Journalist& jnlst,
243  const OptionsList& options,
244  const std::string& prefix
245  );
246 
258  virtual SmartPtr<EqMultiplierCalculator> BuildEqMultiplierCalculator(
259  const Journalist& jnlst,
260  const OptionsList& options,
261  const std::string& prefix
262  );
263 
276  virtual SmartPtr<IterateInitializer> BuildIterateInitializer(
277  const Journalist& jnlst,
278  const OptionsList& options,
279  const std::string& prefix
280  );
281 
302  virtual SmartPtr<LineSearch> BuildLineSearch(
303  const Journalist& jnlst,
304  const OptionsList& options,
305  const std::string& prefix
306  );
307 
324  virtual SmartPtr<MuUpdate> BuildMuUpdate(
325  const Journalist& jnlst,
326  const OptionsList& options,
327  const std::string& prefix
328  );
330 
331 private:
341  //AlgorithmBuilder();
342 
345  const AlgorithmBuilder&
346  );
347 
349  void operator=(
350  const AlgorithmBuilder&
351  );
353 
371 
381 
385 
386 };
387 } // namespace Ipopt
388 
389 #endif
Ipopt::AlgorithmBuilder::AugSolver_
SmartPtr< AugSystemSolver > AugSolver_
Definition: IpAlgBuilder.hpp:378
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:13
Ipopt::AlgorithmBuilder::MuUpdate_
SmartPtr< MuUpdate > MuUpdate_
Definition: IpAlgBuilder.hpp:369
Ipopt::AlgorithmBuilder::SearchDirCalc_
SmartPtr< SearchDirectionCalculator > SearchDirCalc_
Definition: IpAlgBuilder.hpp:365
IPOPTLIB_EXPORT
#define IPOPTLIB_EXPORT
Definition: config_default.h:16
IpAugSystemSolver.hpp
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
Ipopt::AlgorithmBuilder::IterInitializer_
SmartPtr< IterateInitializer > IterInitializer_
Definition: IpAlgBuilder.hpp:367
Ipopt::AlgorithmBuilder::PDSolver_
SmartPtr< PDSystemSolver > PDSolver_
Definition: IpAlgBuilder.hpp:379
Ipopt::AlgorithmBuilder::SymSolver_
SmartPtr< SymLinearSolver > SymSolver_
Definition: IpAlgBuilder.hpp:377
Ipopt::AlgorithmBuilder::custom_solver_
SmartPtr< AugSystemSolver > custom_solver_
Optional pointer to AugSystemSolver.
Definition: IpAlgBuilder.hpp:384
IpReferenced.hpp
IpPDSystemSolver.hpp
Ipopt::AlgorithmBuilder::HessUpdater_
SmartPtr< HessianUpdater > HessUpdater_
Definition: IpAlgBuilder.hpp:363
Ipopt::Journalist
Class responsible for all message output.
Definition: IpJournalist.hpp:116
Ipopt::AlgorithmBuilder::ConvCheck_
SmartPtr< ConvergenceCheck > ConvCheck_
Definition: IpAlgBuilder.hpp:364
Ipopt::AlgorithmBuilder::IterOutput_
SmartPtr< IterationOutput > IterOutput_
Definition: IpAlgBuilder.hpp:362
Ipopt::AlgorithmBuilder::EqMultCalculator_
SmartPtr< EqMultiplierCalculator > EqMultCalculator_
Definition: IpAlgBuilder.hpp:366
Ipopt::AlgorithmBuilder
Builder for creating a complete IpoptAlg object.
Definition: IpAlgBuilder.hpp:48
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
IpIpoptAlg.hpp
Ipopt::ReferencedObject
Storing the reference count of all the smart pointers that currently reference it.
Definition: IpReferenced.hpp:169
Ipopt::AlgorithmBuilder::~AlgorithmBuilder
virtual ~AlgorithmBuilder()
Destructor.
Definition: IpAlgBuilder.hpp:59
Ipopt::AlgorithmBuilder::LineSearch_
SmartPtr< LineSearch > LineSearch_
Definition: IpAlgBuilder.hpp:368