Page 1 of 1

shiftk and bse kernel

Posted: Fri Sep 11, 2009 3:50 am
by lawson
I have questions about how YAMBO handles shifts of the k-space grid.
When I use the default shiftk in abinit for an 8x8x8 grid:

Code: Select all

ngkpt      8 8 8
nshiftk    1
shiftk     0.5 0.5 0.5
I get an 16x16x16 grid in YAMBO:
Grid dimensions : 16 16 16

However, if I use an unshifted grid:

Code: Select all

ngkpt      8 8 8
nshiftk    1
shiftk     0.0 0.0 0.0
I get an 8x8x8 grid in YAMBO. This difference of course means a factor of 8x in the
dimension of the BSE kernel.

Could you explain the reason for this difference?

A related question is: I am trying to reproduce Eric Shirley's BSE results for diamond. He
uses an 8x8x8 grid shifted by 1/64,2/64,3/64 (PRB 57, pR9385, (1998)). When I try this
symmetry breaking grid in YAMBO, I get an error:

Code: Select all

 <02s> [03] Transferred momenta grid
[ERROR] STOP signal received while in :[03] Transferred momenta grid
[ERROR][RL indx] 2 equivalent points in the rlu grid found
Could you explain this error and why Eric's shift won't work in YAMBO?

Below is the abinit input file I am using for diamond.

Thanks for any help!

John

Code: Select all

###########################################################################
# Diamond
# Generation of the KSS file
###########################################################################

# Number of datasets: 2-step calculation
ndtset     2

# Definition of the unit cell: fcc
acell      3*3.54 Angstrom
rprim      0.0 0.5 0.5
           0.5 0.0 0.5
           0.5 0.5 0.0

# Definition of the system
ntypat     1
znucl      6
natom      2
typat      1 1
xred       0.0  0.0  0.0
           0.25 0.25 0.25

ecut       20
nband      8
kptopt     1

#CASE 1
ngkpt      8 8 8
nshiftk    1
shiftk     0.0 0.0 0.0

#CASE 2
#ngkpt      8 8 8
#nshiftk    1
#shiftk     0.5 0.5 0.5

#CASE 3
#ngkpt      8 8 8
#nshiftk    1
#shiftk     1/64 2/64 3/64

# Step 1: determine the ground state
iscf1      5
toldfe1    1.0d-8
nstep1     100
prtden1    1

# Step 2: obtain the Kohn-Sham band structure
symmorphi2 0                 # Disallow non-symmorphic operations (required)
iscf2         -2
tolwfr2       1.0d-18
nstep2       100
getden2     1
kssform2   3                 # Format of the KSS file
nbandkss2 8                 # Number of bands to output to the KSS file
istwfk2      29*1

Re: shiftk and bse kernel

Posted: Fri May 15, 2026 8:15 am
by mengfc
I have encountered the same issue while performing calculations for LiF.

When I use an 8×8×8 k-grid, Yambo correctly shows an 8×8×8 grid during initialization.However, when I adopt the same 8×8×8 grid with a half shift, Yambo reports a 16×16×16 grid instead.

So what numerical or physical scheme causes this grid doubling?

Thanks for any help!

Fanchen

Re: shiftk and bse kernel

Posted: Sat May 16, 2026 4:05 pm
by Daniele Varsano
Dear Fanchen,

please sign your post with your name and affiliation. You can do once for all by filling the signature in your user profile.

This is probably due to the fact that Yambo requires the k-grid to be closed under inversion (k → −k) for its internal GW/BSE convolutions. A gamma-centered grid already satisfies this, but a half-shifted grid does not, so Yambo automatically adds the inversion images of all k-points, effectively doubling each dimension. You can check this behaviour in the report where the k point grid is reported.

Best,
Daniele

Re: shiftk and bse kernel

Posted: Thu Jun 11, 2026 8:56 pm
by Davide Sangalli
When yambo checks the k-points grid, it tries to guess which is the grid shape based on the size of the smallest k-point.
In the shifted case, the smallest kpt is half of the unshifted case.

However, this is just used for the message in the report.

If you check the number of k-points in the IBZ and BZ, everything should be correct.

Best,
D.