Here I show how to calculate GW correction for a generic k-point not included in the original grid used to perform a GW calculations using Yambo 4.2.

This method allows to obtain the GW correction without the need of recalculate the full dielectric constant used in the initial calculation.

As example I will take 2-dimensional hexagonal boron nitride, but the method is general and valid for solids of any dimension.

Notice that in yambo 4.2.0 there is a small bug so you have to overwrite the files

`src/bz_ops/bz_samp_indexes.F` and `ypp/k-points/k_grids.F
`with these two correct ones (k_grids.F and bz_samp_indexes.F).

This bug will be corrected in the new versions.

Here the steps for the calculation of GW correction on an arbitrary point of the BZ

- Start a standard GW calculation with Yambo with a give k-points grid, for example 6x6x1 in this case (DFT and Yambo inputs dft_inputs.tgz yambo_inputs.tgz)
- Generate a shifted grid that contains the point you are interested in with the command
`ypp -k k`, for example the points (0.12345, 0.12345, 0.0), in this case`ypp`will generate a new grid with 28 points. (Notice that this grid contains the old one 7 k-points plus the shifted one 21 k-points) - Recalculate wave-functions on this new k-points set, using the same number of bands of the initial calculation ( DFT_shifted.tgz )
- Read with the wave-functions and then using the command
`yambo -i -V kpt``for the setup. In the input setup change the variable``IkXLim`to the number of k-points in the original grid, 7 in this case`IkXLim = 7` - Copy the dielectric constant of the old calculation
`SAVE/ndb.pp*`in the new SAVE/ folder - Calculate the GW on the point we are interested in, for the example the point (0.12345, 0.12345, 0.0) corresponds to the k-point number 28.

Zaabar foudilI found this website very useful for me, thank you for your help

best regard

foudil zaabar

university of bejaia

algeria