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
15namespace Ipopt
16{
17
18// forward declarations
19class IterationOutput;
20class HessianUpdater;
21class ConvergenceCheck;
22class SearchDirectionCalculator;
23class EqMultiplierCalculator;
24class IterateInitializer;
25class LineSearch;
26class MuUpdate;
27
49{
50public:
53
55 SmartPtr<AugSystemSolver> custom_solver = NULL
56 );
57
60 { }
61
63
66
67 static void RegisterOptions(
69 );
71
82
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
156
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
331private:
340
341 //AlgorithmBuilder();
342
345 const AlgorithmBuilder&
346 );
347
350 const AlgorithmBuilder&
351 );
353
371
381
385
386};
387} // namespace Ipopt
388
389#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_
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.
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.
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.
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_
AlgorithmBuilder(SmartPtr< AugSystemSolver > custom_solver=NULL)
Constructor.
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.
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.