Dear PETSc/Tao team,
I think there might be a bug in the Tao ALMM class: In the function
TaoALMMComputeAugLagAndGradient_Private(), see, eg.
https://petsc.org/release/src/tao/constrained/impls/almm/almm.c.html#TAOALMM
line 648 the gradient seems to be wrong.
The given function and gradient computation is
Lc = F + Ye^TCe + Yi^T(Ci - S) + 0.5*mu*[Ce^TCe + (Ci - S)^T(Ci - S)],
dLc/dX = dF/dX + Ye^TAe + Yi^TAi + 0.5*mu*[Ce^TAe + (Ci - S)^TAi],
but I think the gradient should be (without 0.5)
dLc/dX = dF/dX + Ye^TAe + Yi^TAi + mu*[Ce^TAe + (Ci - S)^TAi].
Kind regards,
Stephan Köhler
--
Stephan Köhler
TU Bergakademie Freiberg
Institut für numerische Mathematik und Optimierung
Akademiestraße 6
09599 Freiberg
Gebäudeteil Mittelbau, Zimmer 2.07
Telefon: +49 (0)3731 39-3173 (Büro)