Page 1 of 1

KGAMMA=.False. not working correctly?

Posted: Fri Jun 25, 2021 10:58 am
by MBaeker
I am currently looking at k-point convergence and notices something strange:
When using a 32-fcc-atom cell (Ni31Zr) with KGAMMA=.FALSE., the k grid seems still to be centered at 0 0 0 according to IBZKPT:
Automatically generated mesh
35
Reciprocal lattice
0.00000000000000 0.00000000000000 0.00000000000000 1
0.11111111111111 0.00000000000000 0.00000000000000 6
0.22222222222222 0.00000000000000 0.00000000000000 6
...
Doing the same thing in a 108-fcc-atom cell, the grid is shifted as I would expect it to be:
Automatically generated mesh
10
Reciprocal lattice
0.08333333333333 0.08333333333333 0.08333333333333 8
0.25000000000000 0.08333333333333 0.08333333333333 24
0.41666666666667 0.08333333333333 0.08333333333333 24


Is this expected behaviour (and I am overlooking something) or is this some kind of bug?

I attach the input files (INCAR/POSCAR) and the output file (only beginning of the OUTCAR)

Thanks for any help,
Martin.

Re: KGAMMA=.False. not working correctly?

Posted: Fri Jun 25, 2021 2:01 pm
by martin.schlipf
OUTCAR wrote:Automatic generation of k-mesh.
generate k-points for: 9 9 9
When you have odd meshes the shifted mesh and the Gamma-centered one coincide.

Re: KGAMMA=.False. not working correctly?

Posted: Mon Jun 28, 2021 7:29 am
by MBaeker
Thanks, but in this case, isn't the manual a bit misleading, stating that kgamma=.False. shifts the mesh away from the gamma point (since the mesh still contains 0,0,0 for odd numbers)?

Re: KGAMMA=.False. not working correctly?

Posted: Tue Jun 29, 2021 6:38 am
by martin.schlipf
Well the KGAMMA tag is usually not the recommended way of setting up the grid. Ideally you set the mesh yourself in the KPOINTS file. In that documentation it is spelled out explicitly
wiki wrote:While these choices are identical for an odd number of subdivisions, [...]
Typically you use KGAMMA and KSPACING to get a quick and dirty result or perhaps for a molecule, where you only have a single point. For your production calculation, you want more control over the mesh.

Re: KGAMMA=.False. not working correctly?

Posted: Tue Jun 29, 2021 7:53 am
by MBaeker
Thanks a lot again.

However, the manual states
" We recommend to use the KSPACING tag in the INCAR file and to avoid using the automatic mode via the KPOINTS file. "
wiki/index.php/KSPACING
so so far that is what I was using.

Could you perhaps give me some idea/example/literature source on what I should control wrt the k-point mesh (except for its density)?

Re: KGAMMA=.False. not working correctly?

Posted: Wed Jun 30, 2021 6:47 am
by martin.schlipf
Okay that is perhaps a bit misleading. That statement compares the fully automatic mode, i.e. a KPOINTS file like

Code: Select all

Automatic mesh
0              ! number of k-points = 0 -> automatic generation scheme 
Auto           ! fully automatic
  10           ! length (R_k)
to the KSPACING tag, where the latter is preferred. However, you can also explicitly specify the grid density like

Code: Select all

Automatic mesh
0              ! number of k-points = 0 -> automatic generation scheme 
Gamma          ! generate a Gamma centered grid
4  4  4        ! subdivisions N_1, N_2 and N_3 along recipr. latt. vectors
0. 0. 0.       ! optional shift of the mesh (s_1, s_2, s_3)
which gives you more control.

The k-point density is the main criteria for the default case. However, depending on the symmetry of your crystal, you may need to take special care that your mesh is compatible. There is a whole section in the wiki that covers various edge cases.