Hello,
I have been trying out the new EXTFPMD method in abinit v9.6.2. I have noticed that the convergence of the SCF cycle can be difficult for the potential residual when using the method. I would usually converge the potential residual with tolvrs 1.0d-8 or 1.0d-9. But, with the method as implemented the convergence can take a very large number of steps (>100 sometimes), or sometimes the convergence fails. I implemented the Zhang 2016 method in my local copy of abinit v8.10.3 a couple of years ago (equivalent to useextfpmd 3). When testing it, I ran into similar convergence problems in the SCF cycle. However, I also found there was a simple solution by using a band buffer (bdbuff). One needs to set the occupation numbers of states with iband > nband - bdbuff to zero. The orbital-free integral contributions then pick up from the eigenenergy of nband - bdbuff. Both nband and bdbuff should be stated in the input file as the value of bdbuff for an easy convergence varies a bit depending on the situation, but it’s only be a few bands. If this change is made, then the testing I’ve done suggests the potential residual would converge down as far as it will in a regular crystal calculation (tolvrs<1.0d-12) in much fewer steps, which might be useful for some applications.
I’ve attached the log file and output files files for AE calculations of fcc Al at 200 eV with 100 bands.
log_100b.txt (618.3 KB)
al100b.abo (110.1 KB)
It compares the convergence (tolvrs 1.0d-8) with and without the buffer bands, with the same number of KS states contributing to the quantities. This is the input file for these simulations:
al_conv.in (1.7 KB)
I borrowed the input variable nbdbuf for bdbuff for my quick implementation in abi v9.
- Without the buffer, the calculation does not actually converge to the desired degree within 100 steps. The deltaE(h) and residm also reach a limit on how well they can converge.
- In contrast, with the band buffer the convergence is quick (11 steps). deltaE(h) and residm also converge very quickly too.
I also did a second calculation at 300 bands (
log_300b.txt (639.7 KB)
al300b.abo (222.4 KB)
This time without the band buffer, the calculation did converge in 48 steps. With the buffer, the calculation converged in 10 steps.
If this might be useful for you, I can provide the modified files. (E: thomas.gawne [AT] physics.ox.ac.uk)
Tom
- For clarity, bdbuff is distinct from extfpmd_nbcut, if the latter were to be used.