Skip to main content

Module std_aug_system_solver

Module std_aug_system_solver 

Source
Expand description

Standard augmented-system solver — port of Algorithm/IpStdAugSystemSolver.{hpp,cpp}.

Flattens the four-block KKT matrix into a single lower-triangular 1-based triplet and hands it to a pounce_linsol::TSymLinearSolver. On the first call the structure is computed (and the linsol’s initialize_structure is invoked); subsequent calls only refill the values array and call multi_solve. Matches the cache/skip logic in upstream IpStdAugSystemSolver::CreateAugmentedSpace and CreateAugmentedSystem.

Sign convention follows upstream:

  (1,1) = w_factor·W + diag(D_x + δ_x)
  (2,2) = diag(D_s + δ_s)
  (3,1) = J_c
  (3,3) = -diag(D_c + δ_c)
  (4,1) = J_d
  (4,2) = -I
  (4,4) = -diag(D_d + δ_d)

Phase-6 first cut: assumes W is a SymTMatrix, J_c/J_d are GenTMatrix, and D_* are DenseVectors — the only concrete types OrigIpoptNLP produces. CompoundMatrix/CompoundVector flattening (used by L-BFGS in Phase 8) is deferred.

Structs§

StdAugSystemSolver
Standard augmented-system solver.