I'm currently working on phonon calculations using Phonopy and VASP DFPT approach with a 2x2x1 supercell. I'm seeking guidance on: K-Points Selection: How should I determine the appropriate k-points for accurate results with Phonopy and VASP DFPT? Band Configuration File: What's the process for creating or obtaining the band configuration file for Phonopy and VASP DFPT, and what should it include? Any insights or resources related to Phonopy, VASP, and DFPT would be greatly appreciated. For 2D material which supercell will be right choice? whether 2×2×1 or anyother?


1 Answer 1



(added by T.S., see comments below) As of 4/17/2024, VASP DFPT only works for $q=\Gamma$, thus you must use a supercell even with VASP-DFPT + Phonopy. Even the phonopy documentation uses a supercell. $q \neq \Gamma$ is supposed to be added in one of the 6.* versions, but is not working as of yet (far as I can tell by looking a VASP documentation). I added this warning since I have replied to other related questions and linked this answer.


At first let me point out that Phonons can be calculated either using DFPT, or Finite Displacement methods. You can refer to the extensive answer by ProfM Are there differences in accuracy and reliability between the frozen phonon method and Density Functional Perturbation Theory? and his first comment to this answer, in which it is explained that Supercells are needed in Finite Differences because to describe a phonon of wave vector $q$ you need a supercell commensurate with it. In DFPT, you can have a phonon of any wave vector in the primitive cell. Thus, according to your quesiton and as you are willing to use DFPT method, there is no need for you to use a supercell in such calculation unless you have a reason for that (studying a defect, interface or super structure,etc.)

How To:

In general, the following steps are needed to calculate the vibrational frequencies or phonons: At first, you should have relaxed the atomic positions and/or cell you are working with (primitive cell). Pay close attention to your choice of the KPOINTS, it is recommended to use high-enough kpoints sampling during geometrical relaxation, and use similar values for your further steps as per the answer by Phil Hasnip on a similar problem I had before The Appearance of Imaginary Frequencies in Lattice Vibration Calculations with Increasing KPOINTS. Next, ensure that cell symmetries have not been broken. Once you have that done, you can go further to perform DFPT calculation of phonon modes using VASP. Finally, post-process the results to extract modes with Phonopy.

Geometrical Relaxation:

VASP provides several ways for geometrical relaxation with the ISIF tag. If the desired symmetry of the cell you have is known, but the atomic positions and/or lattice constants are not known, you shall enforce the symmetry of the starting structure in the POSCAR fileby setting IBRION=2, and ISYM=2. If you just want to relax the atomic positions (lattice constants fixed), choose ISIF=2. For relaxation of the lattice constants, choose either ISIF=3 (cell volume can vary) or ISIF=4 (cell volume remains fixed). On the other hadn. if the symmetry of the initial structure is not known to be correct. In this case, use IBRION=2, ISYM=0 (no symmetry) and use ISIF=3 in this case. You will get CONTCAR file that will be used for the next steps as POSCAR.


When using DFPT method, the lack of symmetry could bring problems in understanding the phonon modes specifically, the assignment of irreducible representations of the normal modes. You may face this problem if the symmetry of your structure is not known and you used IBRION=2 with ISYM=0 and ISIF=3. You can potentially fix this problem by slightly editing the CONTCAR file (editing x,y, z components of the lattice constants to your desired symmetry) and do another relaxation with fixed lattice constants ISIF=2 and symmetry ISYM=2.


Using the previous CONTCAR file as the input POSCAR file, VASP carries out DFPT calculation with IBRION=7 or IBRION=8. The difference between those tow options is that IBRION=8 applies symmetry operations to reduce the number of displacements needed, while IBRION=7 does not. However, pay attention that if you choose IBRION=8, you will not be able to use NCORE/NPAR parallelization. Usually the INCAR file would look like the following (assuming that you are familiar with each of those tags):

NCORE    = 8
KPAR     = 4 
ENCUT    = 600
ALGO     = Normal
PREC     = Accurate
EDIFF    = 1.0e-8
IBRION   = 7
NSW      = 1
ISMEAR   = 0
SIGMA    = 0.05
LASPH    = True
LREAL    = False
NWRITE   = 3


Upon the DFPT calculation is done, you should get the mode symmetries from the vasprun.xml file Phonopy. Firstly, generate a FORCE_CONSTANTS file with the following command:

phonopy --fc vasprun.xml

create a file named symm.conf and place the following in there:

IRREPS = 0 0 0 1e-3 # This is the tolerance

After creating this file:

phonopy --readfc --dim="1 1 1" symm.conf"

This command tells Phonopy to read the FORCE_CONSTANTS file, rather than the default FORCE_SETS file generated from the finite displacements method. The second argument specifies the dimensions of a supercell in terms of the primitive cell. Here, we did not create a supercell, so the scaling is 1 in each of the lattice vectors.

You can refer to the Phonopy documentation for further steps according to your needs, I will just provide the Phonon dispersion section here: You should create the file band.conf which looks like the following (this is just an example):

DIM = 1 1 1
BAND =    0.000   0.000   0.000     0.500   0.000   0.000    0.3333  0.3333  0.000   0.000   0.000   0.000     0.000   0.000   0.500     0.500   0.000   0.500     0.3333  0.3333  0.500      0.000   0.000   0.500      0.500   0.000   0.500      0.500   0.000   0.000      0.3333  0.3333  0.000      0.3333  0.3333  0.500   
BAND_LABELS= $\Gamma$ M K $\Gamma$ A L H A L M K H

You can use vaspkit to get this file using the option (305), then run the following command:

phonopy --readfc --dim="1 1 1" -p band.conf

You can plot the results using your favorite plotting tools, I highly recommend using Sumo

  • $\begingroup$ Is it not obligatory to generate a supercell for phonon calculations using Phonopy DFPT? Alternatively, can it calculate for a single monolayer? Although the website suggests creating a supercell in the method, is it also capable of analyzing a single monolayer? $\endgroup$ Commented Mar 2 at 18:51
  • $\begingroup$ @FarahShehzadi, you don't need the supercell if you are following the steps I have mentioned for DFPT approach. In the case of the monolayer, you will need to add vacuum in the stacking direction to mimic the isolated monolayer, and you can use the same method but the calculation would be longer in this case due to the vacuum layer. Depending on the symmetries in the system, the finite displacement method could be computationaly more feasible in your case. You can run phonopy -d --dim="4 4 1" and see how many displacements you will get. I suggest we continue this in chat. $\endgroup$ Commented Mar 3 at 1:12
  • $\begingroup$ @Jaafer Mehrez On average, how much time do calculations take for a primitive cell in VASP-DFPT and phonopy? $\endgroup$ Commented Mar 4 at 7:55
  • $\begingroup$ @FarahShehzadi, I don’t know, it is related to your setup, how many cores of cpu you are using, and the symmetry of your structure. $\endgroup$ Commented Mar 4 at 11:16
  • 1
    $\begingroup$ @TylerSterling, Thank you for the clarification you have added to the answer, you are right, the supercell would still be needed for doing a DFPT. I personally didn't use the method till recently and for a long time I was having a wrong thought of it due to sources other than Phonopy documentation. $\endgroup$ Commented Apr 19 at 2:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .