Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 // $Id: IpAlgBuilder.hpp 2666 2016-07-20 16:02:55Z stefan $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-09-29
8
9 #ifndef __IPALGBUILDER_HPP__
10 #define __IPALGBUILDER_HPP__
11
12 #include "IpIpoptAlg.hpp"
13 #include "IpReferenced.hpp"
14 #include "IpAugSystemSolver.hpp"
15 #include "IpPDSystemSolver.hpp"
16
17 namespace Ipopt
18 {
19
20 // forward declarations
21 class IterationOutput;
22 class HessianUpdater;
23 class ConvergenceCheck;
24 class SearchDirectionCalculator;
25 class EqMultiplierCalculator;
26 class IterateInitializer;
27 class LineSearch;
28 class MuUpdate;
29
49 class AlgorithmBuilder : public ReferencedObject
50 {
51 public:
55 AlgorithmBuilder(SmartPtr<AugSystemSolver> custom_solver=NULL);
56
58 virtual ~AlgorithmBuilder()
59 {}
60
62
66 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
68
79
84 virtual SmartPtr<SymLinearSolver>
85 SymLinearSolverFactory(const Journalist& jnlst,
86 const OptionsList& options,
87 const std::string& prefix);
88
94 SmartPtr<SymLinearSolver> GetSymLinearSolver(const Journalist& jnlst,
95 const OptionsList& options,
96 const std::string& prefix);
97
105 virtual SmartPtr<AugSystemSolver>
106 AugSystemSolverFactory(const Journalist& jnlst,
107 const OptionsList& options,
108 const std::string& prefix);
109
115 SmartPtr<AugSystemSolver> GetAugSystemSolver(const Journalist& jnlst,
116 const OptionsList& options,
117 const std::string& prefix);
118
128 virtual SmartPtr<PDSystemSolver>
129 PDSystemSolverFactory(const Journalist& jnlst,
130 const OptionsList& options,
131 const std::string& prefix);
132
138 SmartPtr<PDSystemSolver> GetPDSystemSolver(const Journalist& jnlst,
139 const OptionsList& options,
140 const std::string& prefix);
142
149 virtual void BuildIpoptObjects(const Journalist& jnlst,
150 const OptionsList& options,
151 const std::string& prefix,
152 const SmartPtr<NLP>& nlp,
153 SmartPtr<IpoptNLP>& ip_nlp,
154 SmartPtr<IpoptData>& ip_data,
155 SmartPtr<IpoptCalculatedQuantities>& ip_cq);
156
173 virtual SmartPtr<IpoptAlgorithm> BuildBasicAlgorithm(const Journalist& jnlst,
174 const OptionsList& options,
175 const std::string& prefix);
176
183 virtual SmartPtr<IterationOutput>
184 BuildIterationOutput(const Journalist& jnlst,
185 const OptionsList& options,
186 const std::string& prefix);
187
194 virtual SmartPtr<HessianUpdater>
195 BuildHessianUpdater(const Journalist& jnlst,
196 const OptionsList& options,
197 const std::string& prefix);
198
205 virtual SmartPtr<ConvergenceCheck>
206 BuildConvergenceCheck(const Journalist& jnlst,
207 const OptionsList& options,
208 const std::string& prefix);
209
223 virtual SmartPtr<SearchDirectionCalculator>
224 BuildSearchDirectionCalculator(const Journalist& jnlst,
225 const OptionsList& options,
226 const std::string& prefix);
227
239 virtual SmartPtr<EqMultiplierCalculator>
240 BuildEqMultiplierCalculator(const Journalist& jnlst,
241 const OptionsList& options,
242 const std::string& prefix);
243
256 virtual SmartPtr<IterateInitializer>
257 BuildIterateInitializer(const Journalist& jnlst,
258 const OptionsList& options,
259 const std::string& prefix);
260
281 virtual SmartPtr<LineSearch> BuildLineSearch(const Journalist& jnlst,
282 const OptionsList& options,
283 const std::string& prefix);
284
301 virtual SmartPtr<MuUpdate> BuildMuUpdate(const Journalist& jnlst,
302 const OptionsList& options,
303 const std::string& prefix);
305
306 private:
316 //AlgorithmBuilder();
317
319 AlgorithmBuilder(const AlgorithmBuilder&);
320
322 void operator=(const AlgorithmBuilder&);
324
333 SmartPtr<IterationOutput> IterOutput_;
334 SmartPtr<HessianUpdater> HessUpdater_;
335 SmartPtr<ConvergenceCheck> ConvCheck_;
336 SmartPtr<SearchDirectionCalculator> SearchDirCalc_;
337 SmartPtr<EqMultiplierCalculator> EqMultCalculator_;
338 SmartPtr<IterateInitializer> IterInitializer_;
339 SmartPtr<LineSearch> LineSearch_;
340 SmartPtr<MuUpdate> MuUpdate_;
342
348 SmartPtr<SymLinearSolver> SymSolver_;
349 SmartPtr<AugSystemSolver> AugSolver_;
350 SmartPtr<PDSystemSolver> PDSolver_;
352
355 SmartPtr<AugSystemSolver> custom_solver_;
356
357 };
358 } // namespace Ipopt
359
360 #endif
Ipopt::AlgorithmBuilder::BuildBasicAlgorithm
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...
Ipopt::AlgorithmBuilder::ConvCheck_
SmartPtr< ConvergenceCheck > ConvCheck_
Definition: IpAlgBuilder.hpp:335
Ipopt::AlgorithmBuilder::BuildEqMultiplierCalculator
virtual SmartPtr< EqMultiplierCalculator > BuildEqMultiplierCalculator(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the EqMultiplierCalculator class.
Ipopt::AlgorithmBuilder::custom_solver_
SmartPtr< AugSystemSolver > custom_solver_
Optional pointer to AugSystemSolver.
Definition: IpAlgBuilder.hpp:355
IpIpoptAlg.hpp
Ipopt::AlgorithmBuilder::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptTypeInfo.
Ipopt::AlgorithmBuilder::GetSymLinearSolver
SmartPtr< SymLinearSolver > GetSymLinearSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the symmetric linear system solver for this algorithm.
Ipopt::AlgorithmBuilder::HessUpdater_
SmartPtr< HessianUpdater > HessUpdater_
Definition: IpAlgBuilder.hpp:334
IpPDSystemSolver.hpp
Ipopt::AlgorithmBuilder
Builder for creating a complete IpoptAlg object.
Definition: IpAlgBuilder.hpp:49
Ipopt::AlgorithmBuilder::IterOutput_
SmartPtr< IterationOutput > IterOutput_
Definition: IpAlgBuilder.hpp:333
Ipopt::AlgorithmBuilder::SearchDirCalc_
SmartPtr< SearchDirectionCalculator > SearchDirCalc_
Definition: IpAlgBuilder.hpp:336
Ipopt::AlgorithmBuilder::PDSystemSolverFactory
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.
Ipopt::AlgorithmBuilder::BuildIterateInitializer
virtual SmartPtr< IterateInitializer > BuildIterateInitializer(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the IterateInitializer class.
Ipopt::AlgorithmBuilder::IterInitializer_
SmartPtr< IterateInitializer > IterInitializer_
Definition: IpAlgBuilder.hpp:338
Ipopt::AlgorithmBuilder::BuildConvergenceCheck
virtual SmartPtr< ConvergenceCheck > BuildConvergenceCheck(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the ConvergenceCheck class.
Ipopt::AlgorithmBuilder::AlgorithmBuilder
AlgorithmBuilder(SmartPtr< AugSystemSolver > custom_solver=NULL)
Constructor.
Ipopt::AlgorithmBuilder::AugSolver_
SmartPtr< AugSystemSolver > AugSolver_
Definition: IpAlgBuilder.hpp:349
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::ReferencedObject
ReferencedObject class.
Definition: IpReferenced.hpp:174
Ipopt::AlgorithmBuilder::BuildIterationOutput
virtual SmartPtr< IterationOutput > BuildIterationOutput(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the IterationOutput class.
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::AlgorithmBuilder::LineSearch_
SmartPtr< LineSearch > LineSearch_
Definition: IpAlgBuilder.hpp:339
Ipopt::AlgorithmBuilder::GetAugSystemSolver
SmartPtr< AugSystemSolver > GetAugSystemSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the augmented system solver for this algorithm.
Ipopt::AlgorithmBuilder::AugSystemSolverFactory
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.
Ipopt::AlgorithmBuilder::BuildSearchDirectionCalculator
virtual SmartPtr< SearchDirectionCalculator > BuildSearchDirectionCalculator(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the SearchDirectionCalculator class.
IpAugSystemSolver.hpp
Ipopt::AlgorithmBuilder::BuildLineSearch
virtual SmartPtr< LineSearch > BuildLineSearch(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the LineSearch class.
Ipopt::AlgorithmBuilder::MuUpdate_
SmartPtr< MuUpdate > MuUpdate_
Definition: IpAlgBuilder.hpp:340
IpReferenced.hpp
Ipopt::AlgorithmBuilder::SymSolver_
SmartPtr< SymLinearSolver > SymSolver_
Definition: IpAlgBuilder.hpp:348
Ipopt::AlgorithmBuilder::EqMultCalculator_
SmartPtr< EqMultiplierCalculator > EqMultCalculator_
Definition: IpAlgBuilder.hpp:337
Ipopt::Journalist
Class responsible for all message output.
Definition: IpJournalist.hpp:134
Ipopt::AlgorithmBuilder::BuildMuUpdate
virtual SmartPtr< MuUpdate > BuildMuUpdate(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the MuUpdate class.
Ipopt::AlgorithmBuilder::~AlgorithmBuilder
virtual ~AlgorithmBuilder()
Destructor.
Definition: IpAlgBuilder.hpp:58
Ipopt::AlgorithmBuilder::PDSolver_
SmartPtr< PDSystemSolver > PDSolver_
Definition: IpAlgBuilder.hpp:350
Ipopt::AlgorithmBuilder::BuildIpoptObjects
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.
Ipopt::AlgorithmBuilder::operator=
void operator=(const AlgorithmBuilder &)
Overloaded Equals Operator.
Ipopt::AlgorithmBuilder::BuildHessianUpdater
virtual SmartPtr< HessianUpdater > BuildHessianUpdater(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Creates an instance of the HessianUpdater class.
Ipopt::AlgorithmBuilder::SymLinearSolverFactory
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.
Ipopt::AlgorithmBuilder::GetPDSystemSolver
SmartPtr< PDSystemSolver > GetPDSystemSolver(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Get the primal-dual system solver for this algorithm.