Phonon calculation about q wavevectors setting

At present, I am a little confused about the setting of the q vector in the phonon calculation process.

According to the abinit official website tutorial ( and workshop resources (, there are two different q vector setting methods. For examples:

Method 1: from

#Q vectors for all datasets

#Complete set of symmetry-inequivalent qpt chosen to be commensurate
# with kpt mesh so that only one set of GS wave functions is needed.
#Generated automatically by running GS calculation with kptopt=1,
# nshift=0, shiftk=0 0 0 (to include gamma) and taking output kpt set
# file as qpt set. Set nstep=1 so only one iteration runs.

     nqpt   1            # One qpt for each dataset (only 0 or 1 allowed)
                         # This is the default for all datasets and must
                         #  be explicitly turned off for dataset 1.

     qpt2   0.00000000E+00  0.00000000E+00  0.00000000E+00
     qpt3   0.00000000E+00  0.00000000E+00  0.00000000E+00
     qpt4   2.50000000E-01  0.00000000E+00  0.00000000E+00
     qpt5   5.00000000E-01  0.00000000E+00  0.00000000E+00
     qpt6   2.50000000E-01  2.50000000E-01  0.00000000E+00
     qpt7   5.00000000E-01  2.50000000E-01  0.00000000E+00
     qpt8  -2.50000000E-01  2.50000000E-01  0.00000000E+00
     qpt9   5.00000000E-01  5.00000000E-01  0.00000000E+00
     qpt10 -2.50000000E-01  5.00000000E-01  2.50000000E-01

Method 2: from

    nqpt  1
    iqpt: 0
    iqpt+ 1

Compared to Method 1, Method 2 is more convenient. Because method 1 needs to manually set the q vector.
I want to know if Method 2 is currently available in version Abinit 9.2.2 version and how to determine the value of ndtset.

See the attachment for the complete input file of the two methods.

Thanks very much. (2.14 KB) (5.17 KB)

See this post on the same topic:

Then the number of dtset is equal to the number of q

In passing
nqpt 1
iqpt: 0
iqpt+ 1
is a bit too simplistic in most cases, imposing DS1=GS
DS2=qpt number 1 etc…
you might also have a ddk, or other nscf runs etc…
An intermediate strategy is to give the iqpt explicitly, but the qpt value is generated automatically from the list
iqpt2 1
iqpt3 1
iqpt4 2
itpq5 3

1 Like