Confusion about unit cell/supercell as it relates to k-point sampling

Asked by Tristan Zaborniak on 2019-10-28

Based on my reading into DFT, the vectors that define the unit cell and the atom positions within the cell taken together make up the supercell. However, this doesn't seem to match with what a SIESTA supercell is: "an integer 3x3 matrix defining a supercell in terms of the unit cell." My questions on this are thus: how do we define the supercell in SIESTA? And, what is meant by SuperCell(ix, i)?

Now, as it relates to k-points, my understanding has always been that the reciprocal-space lattice vectors are defined by the real-space lattice vectors of the unit cell(s). However, it seems that the user defines this reciprocal-space cell via kgrid_Monkhorst_Pack, where what is defined is a real-space supercell whose reciprocal cell is that of the k-sampling grid. This I do not understand! Is the k-sampling grid not defined over the Brillouin zone?

Further, k_Monkhorst_Pack can only be used with the diagon solution method. This makes it seem to me that k-points not used in Transiesta calculations, but this I'm sure is false. Which options then determine the reciprocal-space lattice vectors and k-point sampling density in Transiesta calculations?

Sorry for my confusion - it just seems that what I've read about k-point sampling doesn't quite map to the available options in Siesta/Transiesta.

Question information

English Edit question
Siesta Edit question
No assignee Edit question
Solved by:
Nick Papior
Last query:
Last reply:
Nick Papior (nickpapior) said : #1

1) You shouldn't specify the "block supercell". This will expand your system equal to the integers you put in that block. I.e. if you have 5 atoms in your input file and specify:
%block supercell
 2 0 0
 0 3 0
0 0 4
your system you will calculate on will be 2 * 3 * 4 * 5 = 120
Unless you know what to use it for, do not specify it in your input file.

2) Yes, the reciprocal lattice vectors are defined by the real space lattice vectors. The kgrid.MonkhorstPack block is also integers specifying the number of k-points along each reciprocal lattice vector. I.e. they exactly relate to the Brillouin zone

3) It is wrong (in the manual) that it is only used for the diagon method. This will be fixed. It is also used for TranSiesta (except if TS.kgrid.MonkhorstPack is defined).

Tristan Zaborniak (tristanz) said : #2

You say that kgrid.MonkhorstPack is used to specify the number of k-points along each reciprocal lattice vector. You'll have to pardon my ignorance, but in the manual there is no mention of to do this. I.e., Mk(i, j) is not defined beyond it being said that "If Mk is the identity matrix and dk is zero, only the Γ point of the unit cell is used."

Say I have some arbitrary unit cell, and I'd like to sample P k-points along the first reciprocal lattice vector, Q along the second, and R along the third. How would I do this? My guess would be this:

%block kgrid.MonkhorstPack
 P 0 0
 0 Q 0
 0 0 R

… but I have doubts.

Best Nick Papior (nickpapior) said : #3

You are correct.

Tristan Zaborniak (tristanz) said : #4

Thanks Nick Papior, that solved my question.