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
{{ message }}
Repository navigation
Missing boundary_shift updates in LCAO RT-TDDFT MD #8221
Thanks to @Critsium-xy for spotting this during the review of #8207.
The new MD path wraps atomic coordinates and synchronizes them to UnitCell, but does not update boundary_shift. This can cause reset_matrix_boundary() to skip the phase corrections needed when atoms cross periodic boundaries at non-Gamma k points.
This is separate from the sub-roundoff wrapping fix in #8207. We should restore the old boundary_shift behavior and add a minimal regression test with a finite displacement across a periodic boundary.
Confirmed by source inspection at 00d74be8e24cd9e7ab3537c8088f8bada783ab4c: MD_base::update_pos() discards the integer translation during wrapping, and neither MDCell::sync_backing_unitcell() branch updates boundary_shift. The LCAO RT-TDDFT runner still uses that field to rephase saved H, S and coefficients, so a genuine finite crossing leaves the correction inactive. The MD transition in #7812 removed the old producer call; #8207's rounding clamp does not restore it.
A regression should exercise the complete drift → backing-cell sync → phase-correction path, using two atoms with nonzero inter-atom matrix elements, finite crossings in both directions, and k=(1/4,0,0). It should also check a subsequent noncrossing step and non-root/empty MPI ownership. Coordinate-only or Gamma-only checks can miss this omission.
This is a source-supported diagnosis, not an executed reproduction of an energy jump. No product changes were made. Restart/substep behavior, nonzero hybrid-gauge phases and gathered-matrix layouts still need focused verification before claiming a complete repair.
Activity
ABACUS-PR-BOT commentedon Oct 27, 2026
Confirmed by source inspection at
00d74be8e24cd9e7ab3537c8088f8bada783ab4c:MD_base::update_pos()discards the integer translation during wrapping, and neitherMDCell::sync_backing_unitcell()branch updatesboundary_shift. The LCAO RT-TDDFT runner still uses that field to rephase saved H, S and coefficients, so a genuine finite crossing leaves the correction inactive. The MD transition in #7812 removed the old producer call; #8207's rounding clamp does not restore it.A regression should exercise the complete drift → backing-cell sync → phase-correction path, using two atoms with nonzero inter-atom matrix elements, finite crossings in both directions, and k=(1/4,0,0). It should also check a subsequent noncrossing step and non-root/empty MPI ownership. Coordinate-only or Gamma-only checks can miss this omission.
This is a source-supported diagnosis, not an executed reproduction of an energy jump. No product changes were made. Restart/substep behavior, nonzero hybrid-gauge phases and gathered-matrix layouts still need focused verification before claiming a complete repair.