Builder to create a complete IpoptAlg object. More...
#include <IpAlgBuilder.hpp>
Public Member Functions | |
Constructors/Destructors | |
AlgorithmBuilder (SmartPtr< AugSystemSolver > custom_solver=NULL) | |
Constructor. | |
virtual | ~AlgorithmBuilder () |
Destructor. | |
Methods to build parts of the algorithm | |
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) |
virtual SmartPtr< IpoptAlgorithm > | BuildBasicAlgorithm (const Journalist &jnlst, const OptionsList &options, const std::string &prefix) |
Static Public Member Functions | |
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions) |
Methods for IpoptTypeInfo. | |
Private Member Functions | |
Default Compiler Generated Methods | |
AlgorithmBuilder (const AlgorithmBuilder &) | |
Default Constructor. | |
void | operator= (const AlgorithmBuilder &) |
Overloaded Equals Operator. | |
Private Attributes | |
SmartPtr< AugSystemSolver > | custom_solver_ |
Optional pointer to AugSystemSolver. |
Builder to create a complete IpoptAlg object.
This object contains all subelements (such as line search objects etc). How the resulting IpoptAlg object is built can be influenced by the options.
The optional argument custom_solver allows the expert user to provide a specialized linear solver (e.g., of the type GenAugSystemSolver), possibly for selfmade matrix objects.
TODO: Currently, this is a basic implementation with everything in one method that can be overloaded. This will need to be expanded to allow customization of different parts without recoding everything.
Definition at line 32 of file IpAlgBuilder.hpp.
Ipopt::AlgorithmBuilder::AlgorithmBuilder | ( | SmartPtr< AugSystemSolver > | custom_solver = NULL |
) |
Constructor.
virtual Ipopt::AlgorithmBuilder::~AlgorithmBuilder | ( | ) | [inline, virtual] |
Destructor.
Definition at line 41 of file IpAlgBuilder.hpp.
Ipopt::AlgorithmBuilder::AlgorithmBuilder | ( | const AlgorithmBuilder & | ) | [private] |
Default Constructor.
Copy Constructor
virtual void Ipopt::AlgorithmBuilder::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 | |||
) | [virtual] |
virtual SmartPtr<IpoptAlgorithm> Ipopt::AlgorithmBuilder::BuildBasicAlgorithm | ( | const Journalist & | jnlst, | |
const OptionsList & | options, | |||
const std::string & | prefix | |||
) | [virtual] |
static void Ipopt::AlgorithmBuilder::RegisterOptions | ( | SmartPtr< RegisteredOptions > | roptions | ) | [static] |
Methods for IpoptTypeInfo.
register the options used by the algorithm builder
void Ipopt::AlgorithmBuilder::operator= | ( | const AlgorithmBuilder & | ) | [private] |
Overloaded Equals Operator.
SmartPtr<AugSystemSolver> Ipopt::AlgorithmBuilder::custom_solver_ [private] |
Optional pointer to AugSystemSolver.
If this is set in the contructor, we will use this to solver the linear systems if the option linear_solver=custerm is chosen.
Definition at line 89 of file IpAlgBuilder.hpp.