Tests: Include Regression Tests for DIIS. Remove GR-Pulay Mixing Scheme
DIIS and GR-Pulay Mixing Schemes have no regression tests. This MR adds basic test coverage DIIS, and removes the GR-Pulay Mixing, which we find to be non-performant (i.e. convergence often isn't reached) in its current form.
Some testing (not included in the MR):
DIIS:
- 04-silicon.01-gs.inp CONVERGED
- 08-benzene_supercell.01-gs.inp CONVERGED
- 12-boron_nitride.01-gs.inp CONVERGED
- 18-TiO2.01-gs.inp CONVERGED
DIIS tends to take more steps than Broyden (as many as double), but each step runs faster and it does converge
bowler_gillan scheme:
- 04-silicon.01-gs.inp CONVERGED
- 08-benzene_supercell.01-gs.inp NO CONVERGENCE
- 12-boron_nitride.01-gs.inp CONVERGED
- 18-TiO2.01-gs.inp NO CONVERGENCE (DOS changing all over the place per itetation)
@nicolastd
On the four randomly-chosen systems I checked, bowler_gillan
failed to converge on two of them. Having not read the paper, I currently do not know what issue/systems that scheme was implemented to address. Do you recommend I:
a) Add coverage using one of the tests that converges
b) Scrap the scheme
c) Leave untested
TODOs
-
Remove experimental warning and label for DIIS, as it has been in the code for 8 years. Leaving long-lived options with no tests, for well-understood algorithms, labeled "experimental" is just sad. My random choice of periodic systems shows indicates that it's more likely than not, reliable. -
Change reference values for DIIS, based on CI feedback -
Decide whether to test or remove bowler_gillan
-
Clean commit messages once CI is passing
UPDATE.
An efficient and robust technique for achieving self consistency in electronic structure calculations
Pulay's Residual Metric Minimization (RMM) method is one of the standard techniques for achieving self consistency in ab initio electronic structure calculations. We describe a reformulation of Pulay's RMM which guarantees reduction of the residual at each step. The new version avoids the use of empirical mixing parameters, and is expected to be more robust than the original version.
The fact that this doesn't give comparable results to DIIS suggests to me that the implementation is buggy
Second Update. 13th March
GR-Pulay Mixing Scheme removed from the code base.