Ipopt Documentation  
 
Loading...
Searching...
No Matches
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
16namespace Ipopt
17{
18
19// forward declarations
20class IterationOutput;
21class HessianUpdater;
26class LineSearch;
27class MuUpdate;
28
50{
51public:
54
56 SmartPtr<AugSystemSolver> custom_solver = NULL,
57 const std::string& custom_solver_name = std::string()
58 );
59
62 { }
63
65
68
69 static void RegisterOptions(
71 );
73
84
89 const Journalist& jnlst,
90 const OptionsList& options,
91 const std::string& prefix
92 );
93
100 const Journalist& jnlst,
101 const OptionsList& options,
102 const std::string& prefix
103 );
104
113 const Journalist& jnlst,
114 const OptionsList& options,
115 const std::string& prefix
116 );
117
124 const Journalist& jnlst,
125 const OptionsList& options,
126 const std::string& prefix
127 );
128
139 const Journalist& jnlst,
140 const OptionsList& options,
141 const std::string& prefix
142 );
143
150 const Journalist& jnlst,
151 const OptionsList& options,
152 const std::string& prefix
153 );
155
158
162 virtual void BuildIpoptObjects(
163 const Journalist& jnlst,
164 const OptionsList& options,
165 const std::string& prefix,
166 const SmartPtr<NLP>& nlp,
167 SmartPtr<IpoptNLP>& ip_nlp,
168 SmartPtr<IpoptData>& ip_data,
170 );
171
189 const Journalist& jnlst,
190 const OptionsList& options,
191 const std::string& prefix
192 );
193
201 const Journalist& jnlst,
202 const OptionsList& options,
203 const std::string& prefix
204 );
205
213 const Journalist& jnlst,
214 const OptionsList& options,
215 const std::string& prefix
216 );
217
225 const Journalist& jnlst,
226 const OptionsList& options,
227 const std::string& prefix
228 );
229
244 const Journalist& jnlst,
245 const OptionsList& options,
246 const std::string& prefix
247 );
248
261 const Journalist& jnlst,
262 const OptionsList& options,
263 const std::string& prefix
264 );
265
279 const Journalist& jnlst,
280 const OptionsList& options,
281 const std::string& prefix
282 );
283
305 const Journalist& jnlst,
306 const OptionsList& options,
307 const std::string& prefix
308 );
309
327 const Journalist& jnlst,
328 const OptionsList& options,
329 const std::string& prefix
330 );
332
333protected:
339 const OptionsList& options,
340 const std::string& prefix
341 );
342
348 const OptionsList& options,
349 const std::string& prefix
350 );
351
352private:
361
362 //AlgorithmBuilder();
363
366 const AlgorithmBuilder&
367 );
368
371 const AlgorithmBuilder&
372 );
374
392
402
407
409 std::string linear_solver;
410
415
416};
417} // namespace Ipopt
418
419#endif
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.
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< SearchDirectionCalculator > BuildSearchDirectionCalculator(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the SearchDirectionCalculator class.
virtual ~AlgorithmBuilder()
Destructor.
SmartPtr< EqMultiplierCalculator > EqMultCalculator_
SmartPtr< LibraryLoader > GetHSLLoader(const OptionsList &options, const std::string &prefix)
Gives Library Loader for HSL library if not all HSL routines are linked in.
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< MuUpdate > BuildMuUpdate(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the MuUpdate 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< IterateInitializer > BuildIterateInitializer(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the IterateInitializer class.
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.
SmartPtr< ConvergenceCheck > ConvCheck_
SmartPtr< AugSystemSolver > custom_solver_
Optional pointer to AugSystemSolver.
std::string linear_solver
name of linear solver constructed in SymLinearSolverFactory
SmartPtr< LibraryLoader > pardisoloader
loader of Pardiso library (at runtime)
SmartPtr< PDSystemSolver > GetPDSystemSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the primal-dual system solver for this algorithm.
virtual SmartPtr< HessianUpdater > BuildHessianUpdater(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the HessianUpdater class.
SmartPtr< LibraryLoader > GetPardisoLoader(const OptionsList &options, const std::string &prefix)
Gives Library Loader for Pardiso library from pardiso-project.org.
SmartPtr< LibraryLoader > hslloader
loader of HSL library (at runtime)
virtual SmartPtr< LineSearch > BuildLineSearch(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the LineSearch class.
SmartPtr< SymLinearSolver > SymSolver_
SmartPtr< SearchDirectionCalculator > SearchDirCalc_
SmartPtr< HessianUpdater > HessUpdater_
SmartPtr< AugSystemSolver > GetAugSystemSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the augmented system solver for this algorithm.
AlgorithmBuilder(SmartPtr< AugSystemSolver > custom_solver=NULL, const std::string &custom_solver_name=std::string())
Constructor.
void operator=(const AlgorithmBuilder &)
Default Assignment Operator.
SmartPtr< AugSystemSolver > AugSolver_
virtual SmartPtr< IterationOutput > BuildIterationOutput(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the IterationOutput class.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptTypeInfo.
SmartPtr< MuUpdate > MuUpdate_
virtual SmartPtr< ConvergenceCheck > BuildConvergenceCheck(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the ConvergenceCheck class.
SmartPtr< LineSearch > LineSearch_
SmartPtr< PDSystemSolver > PDSolver_
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< SymLinearSolver > GetSymLinearSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the symmetric linear system solver for this algorithm.
Base class for checking the algorithm termination criteria.
Base Class for objects that compute estimates for the equality constraint multipliers y_c and y_d.
Abstract base class for objects responsible for updating the Hessian information.
Base class for all methods for initializing the iterates.
Base class for objects that do the output summary per iteration.
Class responsible for all message output.
Base class for line search objects.
Abstract Base Class for classes that implement methods for computing the barrier and fraction-to-the-...
This class stores a list of user set options.
Base class for computing the search direction for the line search.
Template class for Smart Pointers.
#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.