Hessian Updates

The hessian keyword selects how the Hessian (or inverse Hessian) matrix is stored and updated at each optimization step.

Available Methods

direct_psb — Powell-Symmetric-Broyden (Default)

hessian = direct_psb

Stores the direct Hessian (units: Ha/Ų) and solves the linear system at each step via LU decomposition.

The PSB update formula preserves the secant condition while maintaining symmetry:

where and .

Required when use_gediis = blend. Recommended for all production runs.


inverse_bfgs — Inverse Hessian BFGS

hessian = inverse_bfgs

Stores the inverse Hessian (units: Ų/Ha) and computes steps as via matrix-vector multiply (no linear solve required).

Uses the standard BFGS rank-2 update:

Note: Incompatible with use_gediis = blend. Use direct_psb instead for the blend optimizer.


bofill — Bofill Update (Experimental)

hessian = bofill

Blends the Powell (SR1) and Murtagh–Sargent updates using a Bofill-style weighting parameter :

The weight is computed from the curvature: is close to 1 when the gradient change is well-described by a symmetric rank-1 correction (Powell), and close to 0 otherwise (Murtagh–Sargent).

Recommended for: TS-like crossing points where the Hessian may have negative eigenvalues.


powell — Powell Symmetric Rank-1 (Experimental)

hessian = powell

Uses the symmetric SR1 update. Unlike BFGS, SR1 can build up negative curvature, which is useful for crossing points with Hessians that have negative eigenvalues.


bfgs_powell_mix — Adaptive Blend (Experimental)

hessian = bfgs_powell_mix

Adaptively switches between BFGS and Powell updates using Bofill-style weighting at each step. Inherits the robustness of Powell near negative curvature and the superlinear convergence of BFGS near positive-definite regions.


Choosing a Method

ScenarioRecommended
Standard MECP optimizationdirect_psb (default)
GDIIS_blend optimizerdirect_psb (required)
TS-like crossing pointbofill
Very flat or ill-conditioned PESpowell
Uncertain curvaturebfgs_powell_mix
Legacy / simple systeminverse_bfgs