You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Root cause: PORT called cal_occ_pw with p_chgmix in iter 1 (Broyden mixing),
but zdy-tmp calls with nullptr in iter 1 (no mixing, just VU initialization).
This caused the uom_save/uom_array mixing history to diverge from iter 1,
leading to 2-3 eV energy differences in multi-element DFTU tests.
Fix: In iter 1, call cal_occ_pw with nullptr (match zdy-tmp behavior).
From iter 2, use p_chgmix for full Broyden mixing.
Also removed debug #if 0 block that accessed locale[0][1] which crashes
for nspin=4 (no second spin index).
Results:
- 350 FeO: 3575.03 → 3577.68 eV (ZDY=3577.69, diff: 2.67→0.01 eV) ✅
- 222 PW_DFTU_S2_Z: -6364.265868 eV (ZDY=-6364.265868, diff: 1.2e-8 eV) ✅
0 commit comments