Band-structure calculation using density-functional theory: Difference between revisions
No edit summary |
No edit summary |
||
| Line 64: | Line 64: | ||
[[Category:Band structure |Band structure]][[Category:Howto|Howto]] | <!--[[Category:Band structure |Band structure]][[Category:Howto|Howto]]--> | ||
Revision as of 14:53, 2 October 2025
DFT band-structure calculations require multiple steps. On this page, you will find step-by-step instructions, some common pitfalls and pointers on avoiding them, and references to some practical examples to explore.
Step-by-step instructions
A regular k mesh must first be supplied in the KPOINTS file. For density-functional theory (DFT) band-structure calculations, the electronic charge density written to the CHGCAR file suffices to restart a DFT calculation. In total, the following 4 files are required initially:
- - POSCAR
- containing structure information,
- - INCAR
- containing any required tags,
- - KPOINTS
- containing a regular k mesh, using e.g. Γ-centered mesh or Monkhorst-Pack mesh.
- - POTCAR
- containing the desired potentials.
Step 1 (optional): Obtain a converged CHGCAR file from a self-consistent DFT calculation.
Band-structure calculations generally compute the Kohn-Sham orbitals and eigenenergies along a path in reciprocal space which usually connects high-symmetry points in the first Brillouin zone. Some external tools[1][2] help to identify the high-symmetry points and k points along a high-symmetry path for materials of any symmetry.
Step 2: Determine the high-symmetry path along which VASP should compute the band structure.
There are two options to simultaneously supply a regular k mesh and k points along a high-symmetry path to VASP.
- 1. Provide an explicit list of k points with zero-weighted k points.
- Here, the explicit list of the irreducible k points of the regular k mesh can be copied from the IBZKPT file of a previous run to the KPOINTS file. For instance, use the IBZKPT file of step 1. These irreducible k points must be weighted by their multiplicity according to the system's symmetry. Additionally, the k points along a high-symmetry path must be added to the KPOINTS file with the value of all weights set to zero.
- 2. Provide an additional KPOINTS_OPT file that can specify the high-symmetry path in line mode.
- Generally, the KPOINTS file and the KPOINTS_OPT file accept the same format. But again, the regular k mesh needs to be supplied in the KPOINTS file and the high-symmetry path in the KPOINTS_OPT file. We therefore recommend using the Γ-centered mesh or Monkhorst-Pack mesh, and line mode, respectively.
The KPOINTS_OPT method is more convenient because it allows using the automatic generation modes for the k points. The computational cost and memory requirement can vary for the two methods due to the scaling behaviour with the number of k points.
Step 3: Supply a regular k mesh and k points along a high-symmetry path either using the explicit list including zero-weighted k points or using a KPOINTS_OPT file.
Setting ICHARG = 11 allows the DFT calculation to pick up from the CHGCAR at the same densities. Notice that the computed Fermi energy for this case will no longer be correct once a k-path has been declared and the k mesh is no longer regular.
Step 4: Set ICHARG = 11 in the INCAR file and restart the DFT calculation from the CHGCAR file.
Recommendations and advice
Visualization
Plot the band structure, e.g., using py4vasp. In a python notebook in the directory of the calculation, you can execute
import py4vasp as pv
calc = pv.Calculation.from_path(".")
calc.band.plot()
# calc.band.plot("kpoints_opt") # if the high-symmetry path is in KPOINTS_OPT
Practical examples
The bulk-systems tutorials here and here feature calculating and visualizing DFT band-structure for face-centered and cubic-diamond Si, respectively.