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 #include "IpLibraryLoader.hpp"
15 
16 namespace Ipopt
17 {
18 
19 // forward declarations
20 class IterationOutput;
21 class HessianUpdater;
22 class ConvergenceCheck;
23 class SearchDirectionCalculator;
24 class EqMultiplierCalculator;
25 class IterateInitializer;
26 class LineSearch;
27 class MuUpdate;
28 
50 {
51 public:
54 
56  SmartPtr<AugSystemSolver> custom_solver = NULL
57  );
58 
61  { }
62 
64 
67 
68  static void RegisterOptions(
70  );
72 
83 
88  const Journalist& jnlst,
89  const OptionsList& options,
90  const std::string& prefix
91  );
92 
99  const Journalist& jnlst,
100  const OptionsList& options,
101  const std::string& prefix
102  );
103 
112  const Journalist& jnlst,
113  const OptionsList& options,
114  const std::string& prefix
115  );
116 
123  const Journalist& jnlst,
124  const OptionsList& options,
125  const std::string& prefix
126  );
127 
138  const Journalist& jnlst,
139  const OptionsList& options,
140  const std::string& prefix
141  );
142 
149  const Journalist& jnlst,
150  const OptionsList& options,
151  const std::string& prefix
152  );
154 
157 
161  virtual void BuildIpoptObjects(
162  const Journalist& jnlst,
163  const OptionsList& options,
164  const std::string& prefix,
165  const SmartPtr<NLP>& nlp,
166  SmartPtr<IpoptNLP>& ip_nlp,
167  SmartPtr<IpoptData>& ip_data,
169  );
170 
188  const Journalist& jnlst,
189  const OptionsList& options,
190  const std::string& prefix
191  );
192 
200  const Journalist& jnlst,
201  const OptionsList& options,
202  const std::string& prefix
203  );
204 
212  const Journalist& jnlst,
213  const OptionsList& options,
214  const std::string& prefix
215  );
216 
224  const Journalist& jnlst,
225  const OptionsList& options,
226  const std::string& prefix
227  );
228 
243  const Journalist& jnlst,
244  const OptionsList& options,
245  const std::string& prefix
246  );
247 
260  const Journalist& jnlst,
261  const OptionsList& options,
262  const std::string& prefix
263  );
264 
278  const Journalist& jnlst,
279  const OptionsList& options,
280  const std::string& prefix
281  );
282 
304  const Journalist& jnlst,
305  const OptionsList& options,
306  const std::string& prefix
307  );
308 
326  const Journalist& jnlst,
327  const OptionsList& options,
328  const std::string& prefix
329  );
331 
332 protected:
338  const OptionsList& options,
339  const std::string& prefix
340  );
341 
347  const OptionsList& options,
348  const std::string& prefix
349  );
350 
351 private:
360 
361  //AlgorithmBuilder();
362 
365  const AlgorithmBuilder&
366  );
367 
369  void operator=(
370  const AlgorithmBuilder&
371  );
373 
391 
401 
405 
407  std::string linear_solver;
408 
413 
414 };
415 } // namespace Ipopt
416 
417 #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.
SmartPtr< LibraryLoader > GetPardisoLoader(const OptionsList &options, const std::string &prefix)
Gives Library Loader for Pardiso library from pardiso-project.org.
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.
std::string linear_solver
name of linear solver constructed in SymLinearSolverFactory
SmartPtr< LibraryLoader > pardisoloader
loader of Pardiso library (at runtime)
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< LibraryLoader > hslloader
loader of HSL library (at runtime)
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_
SmartPtr< LibraryLoader > GetHSLLoader(const OptionsList &options, const std::string &prefix)
Gives Library Loader for HSL library if not all HSL routines are linked in.
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:165
#define IPOPTLIB_EXPORT
Definition: config.h:94
This file contains a base class for all exceptions and a set of macros to help with exceptions.