Why are so many k-points needed in the transport direction in a device calculation?


Published: Sep 13, 2021
Version: 2015
Tags: device configuration, transport, kpoints


ATK users often ask us why so many k-points are needed in the transport direction in a device calculation. Here is an example from the Forum:

“For a calculation of a system like (metalic electrode)-(molecule)-(metalic electrode) with a molecule along the Z axis, some literature references mention k-point parameters like 1x1x100 or 3x3x100 for the Brillouin zone integration. It is surprising, because in a pure interface system like a self-assembled monolayer, reasonable k-point parameters are like 8x8x1. Can you explain this difference?”

This is a rather subtle point, so we here adress it carefully.


The transport direction is always C || Z, and the X/Y plane is spanned by the A/B lattice vectors. Thus C and Z can be used interchangably to denote the transport direction.


QuantumATK device boundary conditions and k-points

The key point of the NEGF transport model in QuantumATK is that the boundary conditions are not periodic in the C direction. Instead, open boundary conditions are used, in order to apply a voltage across the structure, so that one can compute the electron current under finite bias.

Since the system has no periodicity in C, one should therefore not need more than one k-point in this direction. And this is indeed the case - there is no k-point sampling used in the device calculation. This is reflected in the specification of the k-point sampling for the transmission calculation and other transport analysis quantities: The option for Brillouin zone integration is simply \((k_A , k_B)\).

We do, however, need k-point sampling in all directions for the electrodes! These are still assumed to be periodic in C, and the electronic states of the electrodes are obtained from a standard bulk calculation, with k-points in all directions. But that still does not fully explain the unusual k-point sampling needed for device calculations, because for the typical electrode sizes used, it would appear to be sufficient to use 5 or 12 \(k_C\)-points - not 100.

Assume for a moment that you have an ideal system, i.e. the electrodes are identical to the central region. Let \(H_L\), \(H_{CR}\), and \(H_R\) be the Hamiltonians of the left electrode, central region, and right electrode, respectively. \(H_L\) and \(H_R\) are calculated under periodic boundary conditions, while \(H_{CR}\) is evaluated with open boundary conditions using self-energies obtained from \(H_L\) and \(H_R\). Now, clearly you will only get perfect transmission in this system if \(H_{L}=H_{R}=H_{CR}\). To obtain this, the same k-point sampling should be used in the A and B directions in the electrodes and in the open boundary condition calculation for the central region. This point is quite trivial, and must always be obeyed in a calculation. The actual number of \(k_A,k_B\) points required is a matter of balancing performance vs. accuracy, just like for any other calculation.

In the C-direction, however, the self-energy calculation effectively corresponds to an infinite number of k-points, and you will need a lot of \(k_C\)-points in the electrode calculation to match the electronic structures of the electrodes and the central region. The primary quantity that needs to be closely matched is the Fermi level. A difference here will lead to slow or bad SCF convergence, and in the worst case inaccurate results due to artificial scattering introduced by the Fermi level mismatch. Such scattering cannot really be distinguished from actual scattering in a complicated system, but it is noticeable in a perfect system. The ATK default value of \(k_C\) = 100 is probably quite far on the safe side. But it is relatively inexpensive since these k-points are only used in the electrode calculation, which is the smaller and faster part of the full computation.


The short message: Stick to 100 k-points along the C direction, and you should be safe.