Commit a5048ed
fix(dm): make tol_grad a sufficient stop for the CG path
The CG loop required energy-plateau AND grad<=tol_grad (inherited from
jax_hf), so soft-mode runs sat below tol_grad for hundreds of iterations
and hit max_iter with converged=False. With tol_grad > 0 the gradient
test is now the sole stopping criterion, mirroring solve_rtr: tested at
the freshly evaluated point before stepping, so the returned state is
the one that passed and the histories end with the qualifying (E, grad)
pair (this also removes the one-iteration staleness of the old top-of-
loop test and the max_iter off-by-one). tol_grad == 0 keeps the
windowed-energy criterion unchanged.
Also documents the optimizer-internal history semantics — hist_E is the
pre-step HF energy without the -T*S entropy term; the CG finaliser takes
one extra diagonalise-and-reoccupy step so energy != hist_E[-1] for runs
stopped away from stationarity, while Newton finalises in place — and
adds TestGradientStop regression tests (note: a kernel without band
hybridization has exactly zero orbital gradient, so the tests seed off
the h-eigenbasis).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 2bbdce7 commit a5048ed
3 files changed
Lines changed: 122 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
25 | 32 | | |
26 | 33 | | |
27 | 34 | | |
| |||
71 | 78 | | |
72 | 79 | | |
73 | 80 | | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
74 | 90 | | |
75 | 91 | | |
76 | 92 | | |
| |||
470 | 486 | | |
471 | 487 | | |
472 | 488 | | |
| 489 | + | |
473 | 490 | | |
474 | 491 | | |
475 | | - | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | | - | |
481 | | - | |
482 | | - | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
483 | 507 | | |
484 | | - | |
485 | | - | |
486 | 508 | | |
487 | 509 | | |
488 | 510 | | |
| |||
510 | 532 | | |
511 | 533 | | |
512 | 534 | | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
513 | 546 | | |
514 | 547 | | |
515 | 548 | | |
| |||
646 | 679 | | |
647 | 680 | | |
648 | 681 | | |
649 | | - | |
| 682 | + | |
650 | 683 | | |
651 | 684 | | |
652 | 685 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
27 | 35 | | |
28 | 36 | | |
29 | 37 | | |
| |||
65 | 73 | | |
66 | 74 | | |
67 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
68 | 91 | | |
69 | 92 | | |
70 | 93 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
114 | 169 | | |
115 | 170 | | |
116 | 171 | | |
| |||
0 commit comments