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 
87  const Journalist& jnlst,
88  const OptionsList& options,
89  const std::string& prefix
90  );
91 
98  const Journalist& jnlst,
99  const OptionsList& options,
100  const std::string& prefix
101  );
102 
111  const Journalist& jnlst,
112  const OptionsList& options,
113  const std::string& prefix
114  );
115 
122  const Journalist& jnlst,
123  const OptionsList& options,
124  const std::string& prefix
125  );
126 
137  const Journalist& jnlst,
138  const OptionsList& options,
139  const std::string& prefix
140  );
141 
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 
187  const Journalist& jnlst,
188  const OptionsList& options,
189  const std::string& prefix
190  );
191 
199  const Journalist& jnlst,
200  const OptionsList& options,
201  const std::string& prefix
202  );
203 
211  const Journalist& jnlst,
212  const OptionsList& options,
213  const std::string& prefix
214  );
215 
223  const Journalist& jnlst,
224  const OptionsList& options,
225  const std::string& prefix
226  );
227 
242  const Journalist& jnlst,
243  const OptionsList& options,
244  const std::string& prefix
245  );
246 
259  const Journalist& jnlst,
260  const OptionsList& options,
261  const std::string& prefix
262  );
263 
277  const Journalist& jnlst,
278  const OptionsList& options,
279  const std::string& prefix
280  );
281 
303  const Journalist& jnlst,
304  const OptionsList& options,
305  const std::string& prefix
306  );
307 
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
Builder for creating a complete IpoptAlg object.
virtual SmartPtr< PDSystemSolver > PDSystemSolverFactory(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Create a solver that can be used to solve a primal-dual system.
virtual ~AlgorithmBuilder()
Destructor.
SmartPtr< EqMultiplierCalculator > EqMultCalculator_
AlgorithmBuilder(const AlgorithmBuilder &)
Default Constructor.
SmartPtr< IterationOutput > IterOutput_
virtual void BuildIpoptObjects(const Journalist &jnlst, const OptionsList &options, const std::string &prefix, const SmartPtr< NLP > &nlp, SmartPtr< IpoptNLP > &ip_nlp, SmartPtr< IpoptData > &ip_data, SmartPtr< IpoptCalculatedQuantities > &ip_cq)
Allocates memory for the IpoptNLP, IpoptData, and IpoptCalculatedQuanties arguments.
virtual SmartPtr< IterateInitializer > BuildIterateInitializer(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the IterateInitializer class.
SmartPtr< PDSystemSolver > GetPDSystemSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the primal-dual system solver for this algorithm.
virtual SmartPtr< SymLinearSolver > SymLinearSolverFactory(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Create a solver that can be used to solve a symmetric linear system.
virtual SmartPtr< HessianUpdater > BuildHessianUpdater(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the HessianUpdater class.
virtual SmartPtr< EqMultiplierCalculator > BuildEqMultiplierCalculator(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the EqMultiplierCalculator class.
SmartPtr< IterateInitializer > IterInitializer_
virtual SmartPtr< SearchDirectionCalculator > BuildSearchDirectionCalculator(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the SearchDirectionCalculator class.
SmartPtr< ConvergenceCheck > ConvCheck_
SmartPtr< AugSystemSolver > custom_solver_
Optional pointer to AugSystemSolver.
SmartPtr< AugSystemSolver > GetAugSystemSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the augmented system solver for this algorithm.
SmartPtr< SymLinearSolver > GetSymLinearSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the symmetric linear system solver for this algorithm.
virtual SmartPtr< AugSystemSolver > AugSystemSolverFactory(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Create a solver that can be used to solve an augmented system.
SmartPtr< SymLinearSolver > SymSolver_
SmartPtr< SearchDirectionCalculator > SearchDirCalc_
virtual SmartPtr< IterationOutput > BuildIterationOutput(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the IterationOutput class.
virtual SmartPtr< ConvergenceCheck > BuildConvergenceCheck(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the ConvergenceCheck class.
SmartPtr< HessianUpdater > HessUpdater_
void operator=(const AlgorithmBuilder &)
Default Assignment Operator.
SmartPtr< AugSystemSolver > AugSolver_
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptTypeInfo.
virtual SmartPtr< IpoptAlgorithm > BuildBasicAlgorithm(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the IpoptAlgorithm class by building each of its required constructor argument...
SmartPtr< MuUpdate > MuUpdate_
virtual SmartPtr< MuUpdate > BuildMuUpdate(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the MuUpdate class.
virtual SmartPtr< LineSearch > BuildLineSearch(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the LineSearch class.
SmartPtr< LineSearch > LineSearch_
SmartPtr< PDSystemSolver > PDSolver_
AlgorithmBuilder(SmartPtr< AugSystemSolver > custom_solver=NULL)
Constructor.
Class responsible for all message output.
This class stores a list of user set options.
Storing the reference count of all the smart pointers that currently reference it.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
#define IPOPTLIB_EXPORT
This file contains a base class for all exceptions and a set of macros to help with exceptions.