Comment 11 for bug 1834949

Revision history for this message
Nick Papior (nickpapior) wrote :

1) Yes, the dH jump is sort of artificial. The dH you see are calculated as this:
DM_0 = read from *.DM file
H_0 is calculated from DM_0
DM_1 is calculated from H_0
H_1 is calculated from DM_1
dH = H_1 - H_0

Subsequent iterations does this:
H = mixed from previous iterations
DM_i is calculated from H
H_i is calculated from DM_i

This is why you *always* see a finite dHmax value, regardless of mixing == 0.

2.1) Yes, the second dH value would be equivalent to the first for the code change. Note that you are mixing the Hamiltonian in your setup. If you instead mixed the DM you would see the opposite effect, dDmax is finite, but dHmax is 0.
Also, the first dHmax is explained by the above.

2.2) This is because you are mixing H, in that case you will always have the same dHmax for mixing = 0 since you start each SCF with the same H, and you always compare with the output H.

a) initial dH will only be zero in the first step IFF you mix DM and you read in the Hamiltonian that corresponds to the DM file (this can't be done currently).
b) This is an undocumented feature, "Read.H.From.File true" (flag will probably change). But the above should explain why you see the things you find. They are not strange :)