Skip to main content

Module warm_start

Module warm_start 

Source
Expand description

Warm-start iterate initializer — port of IpWarmStartIterateInitializer.{hpp,cpp}. Used when a previous solve has left a trial point that should be reused.

There are two callers we serve:

  • IpoptApplication::ReOptimizeTNLP (the upstream re-solve path) populates data.curr with the previous solve’s iterate. We clamp multipliers and optionally override mu.
  • First solves from OptimizeTNLP that opt into warm_start_init_point=yes to forward user-supplied primal/dual seeds via TNLP::get_starting_point. Here data.curr carries only dim metadata (uninitialized vectors); we pull seeds from the NLP, push primals/slacks into the bound interior with warm-start bound_push/bound_frac, and then apply the same multiplier clamps.

Wired options today: bound_push, bound_frac, slack_bound_push, slack_bound_frac, mult_init_max, target_mu. The remaining knobs (mult_bound_push, entire_iterate, same_structure) are stored but not yet consumed.

Structs§

WarmStartIterateInitializer