Expand description
Algorithm builder — port of Algorithm/IpAlgBuilder.{hpp,cpp}.
Reads OptionsList, walks the dependency order documented in
ref/Ipopt/AGENT_REFERENCE/ARCHITECTURE.md §“BuildBasicAlgorithm”,
and assembles the strategy objects needed by IpoptAlgorithm:
SymLinearSolver(MA57 / MUMPS / FERAL) →AugSystemSolver(StdAugSystemSolver) →PdSystemSolver(PdFullSpaceSolver) →SearchDirCalculator(PdSearchDirCalc).BacktrackingLsAcceptor(filter / penalty / cg-penalty) →BacktrackingLineSearch.MuUpdate(monotone / adaptive[+oracle]).ConvCheck(OptErrorConvCheck).IterateInitializer(default / warm-start) andEqMultCalculator(LeastSquareMults).HessianUpdater(exact / limited-memory).IterationOutput(OrigIterationOutput).NLPScalingObject(none / user / gradient-based / equilibration-based).
Phase 7 ships the option-driven dispatch surface; the assembled
IpoptAlgorithm lands once each strategy’s arithmetic does.
Structs§
- Algorithm
Builder - Algorithm
Bundle - Assembled strategy bundle. Phase 7 ships the structural bundle;
IpoptAlgorithm::newreads from this when it lands. - Conv
Check Options - Knobs read off
OptionsListand baked into the assembledOptErrorConvCheck. Defaults mirrorIpOptErrorConvCheck.cpp:RegisterOptions. - Line
Search Options - Knobs baked into the assembled
BacktrackingLineSearch. Defaults mirrorIpBacktrackingLineSearch.cpp:RegisterOptions. - MuOptions
- Knobs read off
OptionsListand baked into the assembledMonotoneMuUpdateorAdaptiveMuUpdate. Defaults mirrorIpMonotoneMuUpdate.cpp/IpAdaptiveMuUpdate.cpp:RegisterOptions.mu_maxdefaults to the sentinel-1; positive values are baked into both updaters at build time (adaptive interprets-1as “lazy-init frommu_max_fact * avrg_compl”). - Output
Options - Knobs baked into the assembled
OrigIterationOutput. Defaults mirrorIpOrigIterationOutput.cpp:RegisterOptions/IpAlgorithmRegOp.cpp. - Warm
Start Options - Knobs read off
OptionsListand baked intoWarmStartIterateInitializer. Defaults mirrorIpWarmStartIterateInitializer.cpp:RegisterOptions.
Enums§
Type Aliases§
- Linear
Backend Factory - Backend factory — the application supplies one before calling
AlgorithmBuilder::build. Mirrors upstream’sSymLinearSolverFactoryknob inIpAlgBuilder.cpp. The default factory wires in FERAL; MA57 is selectable when thema57cargo feature is enabled.