Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::InexactAlgorithmBuilder Class Reference

Builder to create a complete IpoptAlg object for the inexact step computation version. More...

#include <IpInexactAlgBuilder.hpp>

+ Inheritance diagram for Ipopt::InexactAlgorithmBuilder:

Public Member Functions

Constructors/Destructors
 InexactAlgorithmBuilder ()
 Constructor.
 
virtual ~InexactAlgorithmBuilder ()
 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)
 Allocates memory for the IpoptNLP, IpoptData, and IpoptCalculatedQuanties arguments.
 
virtual SmartPtr< IpoptAlgorithmBuildBasicAlgorithm (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the IpoptAlgorithm class by building each of its required constructor arguments piece-by-piece.
 
- Public Member Functions inherited from Ipopt::AlgorithmBuilder
 AlgorithmBuilder (SmartPtr< AugSystemSolver > custom_solver=NULL, const std::string &custom_solver_name=std::string())
 Constructor.
 
virtual ~AlgorithmBuilder ()
 Destructor.
 
virtual SmartPtr< SymLinearSolverSymLinearSolverFactory (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Create a solver that can be used to solve a symmetric linear system.
 
SmartPtr< SymLinearSolverGetSymLinearSolver (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Get the symmetric linear system solver for this algorithm.
 
virtual SmartPtr< AugSystemSolverAugSystemSolverFactory (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Create a solver that can be used to solve an augmented system.
 
SmartPtr< AugSystemSolverGetAugSystemSolver (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Get the augmented system solver for this algorithm.
 
virtual SmartPtr< PDSystemSolverPDSystemSolverFactory (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Create a solver that can be used to solve a primal-dual system.
 
SmartPtr< PDSystemSolverGetPDSystemSolver (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Get the primal-dual system solver for this algorithm.
 
virtual SmartPtr< IterationOutputBuildIterationOutput (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the IterationOutput class.
 
virtual SmartPtr< HessianUpdaterBuildHessianUpdater (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the HessianUpdater class.
 
virtual SmartPtr< ConvergenceCheckBuildConvergenceCheck (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the ConvergenceCheck class.
 
virtual SmartPtr< SearchDirectionCalculatorBuildSearchDirectionCalculator (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the SearchDirectionCalculator class.
 
virtual SmartPtr< EqMultiplierCalculatorBuildEqMultiplierCalculator (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the EqMultiplierCalculator class.
 
virtual SmartPtr< IterateInitializerBuildIterateInitializer (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the IterateInitializer class.
 
virtual SmartPtr< LineSearchBuildLineSearch (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the LineSearch class.
 
virtual SmartPtr< MuUpdateBuildMuUpdate (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Creates an instance of the MuUpdate class.
 
- Public Member Functions inherited from Ipopt::ReferencedObject
 ReferencedObject ()
 
virtual ~ReferencedObject ()
 
Index ReferenceCount () const
 
void AddRef (const Referencer *referencer) const
 
void ReleaseRef (const Referencer *referencer) const
 

Static Public Member Functions

static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 register the options used by the algorithm builder
 
- Static Public Member Functions inherited from Ipopt::AlgorithmBuilder
static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 Methods for IpoptTypeInfo.
 

Private Member Functions

Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 InexactAlgorithmBuilder (const InexactAlgorithmBuilder &)
 Copy Constructor.
 
void operator= (const InexactAlgorithmBuilder &)
 Overloaded Assignment Operator.
 

Private Attributes

SmartPtr< AugSystemSolvercustom_solver_
 Optional pointer to AugSystemSolver.
 

Additional Inherited Members

- Protected Member Functions inherited from Ipopt::AlgorithmBuilder
SmartPtr< LibraryLoaderGetHSLLoader (const OptionsList &options, const std::string &prefix)
 Gives Library Loader for HSL library if not all HSL routines are linked in.
 
SmartPtr< LibraryLoaderGetPardisoLoader (const OptionsList &options, const std::string &prefix)
 Gives Library Loader for Pardiso library from pardiso-project.org.
 

Detailed Description

Builder to create a complete IpoptAlg object for the inexact step computation version.

TODO: The AlorithmBuilder base class has been reorganized to allow for easier customization. This class could be reimplemented to take advantage of that. In particular, a substantial amount code for generating the SymLinearSolver and AugSystemSolver is available for reuse.

Definition at line 25 of file IpInexactAlgBuilder.hpp.

Constructor & Destructor Documentation

◆ InexactAlgorithmBuilder() [1/2]

Ipopt::InexactAlgorithmBuilder::InexactAlgorithmBuilder ( )

Constructor.

◆ ~InexactAlgorithmBuilder()

virtual Ipopt::InexactAlgorithmBuilder::~InexactAlgorithmBuilder ( )
inlinevirtual

Destructor.

Definition at line 34 of file IpInexactAlgBuilder.hpp.

◆ InexactAlgorithmBuilder() [2/2]

Ipopt::InexactAlgorithmBuilder::InexactAlgorithmBuilder ( const InexactAlgorithmBuilder )
private

Copy Constructor.

Member Function Documentation

◆ BuildIpoptObjects()

virtual void Ipopt::InexactAlgorithmBuilder::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

Allocates memory for the IpoptNLP, IpoptData, and IpoptCalculatedQuanties arguments.

Dependencies: None

Reimplemented from Ipopt::AlgorithmBuilder.

◆ BuildBasicAlgorithm()

virtual SmartPtr< IpoptAlgorithm > Ipopt::InexactAlgorithmBuilder::BuildBasicAlgorithm ( const Journalist jnlst,
const OptionsList options,
const std::string &  prefix 
)
virtual

Creates an instance of the IpoptAlgorithm class by building each of its required constructor arguments piece-by-piece.

The default algorithm can be customized by overloading this method or by overloading one or more of the Build* methods called in this method's default implementation. Additional control can be achieved by overloading any of the *SolverFactory methods. This method will call (in this order): -> BuildIterationOutput() -> BuildHessianUpdater() -> BuildConvergenceCheck() -> BuildSearchDirectionCalculator() -> BuildEqMultiplierCalculator() -> BuildIterateInitializer() -> BuildLineSearch() -> BuildMuUpdate()

Reimplemented from Ipopt::AlgorithmBuilder.

◆ RegisterOptions()

static void Ipopt::InexactAlgorithmBuilder::RegisterOptions ( SmartPtr< RegisteredOptions roptions)
static

register the options used by the algorithm builder

◆ operator=()

void Ipopt::InexactAlgorithmBuilder::operator= ( const InexactAlgorithmBuilder )
private

Overloaded Assignment Operator.

Member Data Documentation

◆ custom_solver_

SmartPtr<AugSystemSolver> Ipopt::InexactAlgorithmBuilder::custom_solver_
private

Optional pointer to AugSystemSolver.

If this is set in the constructor, we will use this to solve the linear systems if the option linear_solver=custom is chosen.

Definition at line 89 of file IpInexactAlgBuilder.hpp.


The documentation for this class was generated from the following file: