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:
52 
55  SmartPtr<AugSystemSolver> custom_solver = NULL
56  );
57 
60  { }
61 
63 
65 
67  static void RegisterOptions(
69  );
71 
81 
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 
155 
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:
339 
341  //AlgorithmBuilder();
342 
345  const AlgorithmBuilder&
346  );
347 
349  void operator=(
350  const AlgorithmBuilder&
351  );
353 
361  SmartPtr<IterationOutput> IterOutput_;
371 
376  SmartPtr<SymLinearSolver> SymSolver_;
381 
385 
386 };
387 } // namespace Ipopt
388 
389 #endif
SmartPtr< ConvergenceCheck > ConvCheck_
SmartPtr< AugSystemSolver > custom_solver_
Optional pointer to AugSystemSolver.
SmartPtr< HessianUpdater > HessUpdater_
Builder for creating a complete IpoptAlg object.
SmartPtr< SearchDirectionCalculator > SearchDirCalc_
This file contains a base class for all exceptions and a set of macros to help with exceptions...
SmartPtr< IterateInitializer > IterInitializer_
SmartPtr< AugSystemSolver > AugSolver_
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
Storing the reference count of all the smart pointers that currently reference it.
This class stores a list of user set options.
SmartPtr< LineSearch > LineSearch_
SmartPtr< MuUpdate > MuUpdate_
#define IPOPTLIB_EXPORT
SmartPtr< EqMultiplierCalculator > EqMultCalculator_
Class responsible for all message output.
virtual ~AlgorithmBuilder()
Destructor.
SmartPtr< PDSystemSolver > PDSolver_