For curiosity purpose, I tried to use the abinit kpoint grid generation, the one that is performed when neither ngkpt or kprtlatt are defined. And I think I don't understand how it works and what Iit is supposed to do.
My trial system is an hexagonal lattice and my convergence tests lead me to choose a 11x11x9 kpoint grid (it's a metal). With this mesh, there are 80 kpoints in the BZ and kptrlen=8.29595466E+01, which is HUGE compare to what abinit can find with its grids. Below is abinit's opinion about kpoint grids for my system:
Code: Select all
List of best grids, ordered by nkpt.
(stop at a value of kptrlen 20% larger than the target value).
(the merit factor will tend to one or two in 3 dimensions)
(and to one, two or four in 2 dimensions)
nkpt kptrlen grid# merit_factor
1 1.3063E+01 13 0.2022
2 1.5084E+01 3 0.1557
3 2.6125E+01 15 0.5393
4 2.6370E+01 5 0.4159
8 3.0167E+01 6 0.3114
10 3.7709E+01 7 0.4865
For target kptrlen= 3.0000E+01, the selected grid is number 6,
giving kptrlen= 3.0167E+01 with nkpt= 8
What do these results mean? The lowest kptrlen is obtained with a very (very) coarse grid with only 1 kpoint. This is definitely not the best grid... Even the best rated grid has only 3 kpoints.
I don't understand what we are supposed to get from these data.
Thank you for your insight
Boris