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;
22class ConvergenceCheck;
23class SearchDirectionCalculator;
24class EqMultiplierCalculator;
25class IterateInitializer;
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
Builder for creating a complete IpoptAlg object.
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.
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.
#define IPOPTLIB_EXPORT
This file contains a base class for all exceptions and a set of macros to help with exceptions.