Band-structure calculation using hybrid functionals
Band-structure calculations for hybrid functionals require multiple steps. Below we give a step-by-step introduction and an example. Additionally, we provide some advice reduce computational and human effort.
Step-by-step instructions
For hybrid functionals, the Hamiltonian cannot be expressed in terms of the electronic charge density alone. Instead, the Kohn-Sham orbitals on a regular k mesh are required for any calculation within the formalism of hybrid functionals. The regular k mesh must be supplied in the KPOINTS file. Consequently, restarting a hybrid calculation requires the WAVECAR file of the previous self-consistent-field (SCF) run. This is in contrast to density-functional theory (DFT) where the electronic charge density written to the CHGCAR file suffices to restart a DFT calculation.
Step 1: Run an SCF calculation to obtain a converged WAVECAR file.
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 points 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. Read 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. These irreducible k points must be weighted by their multiplicity according to the symmetry of the system. 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. Read 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 providing the high-symmetry path in 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 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 and restart the hybrid calculation from the converged WAVECAR file.
Recommendations and advice
The KPOINTS_OPT file can also be provided when starting an SCF calculation from scratch. In that case, VASP computes the band energies for the k points of the KPOINTS_OPT file after SCF is reached. While this seems to make step 1 obsolete, mind that it affects how VASP can treat the Coulomb-convergence during the SCF calculation. That is, FOCKCORR=2 cannot be used when computing the band structure with either option of supplying the k points.
The method using an explicit list including zero-weighted k points should not be used from scratch for performance reasons. Constructing the Fock exchange dominates the computational cost and memory requirement and it scales with the number of k points. Thus, each SCF step will get unnecessarily expensive when including zero-weighted k points.
Tip: For both methods, restart from a converged hybrid SCF calculation to seize all available options for optimal performance. |
As mentioned, the computational cost and memory requirement can vary for the two methods due to the scaling with the number of k points. It is still possible to achieve very fine sampling along the k path with both methods: For the KPOINTS_OPT method, set an appropriate batch size, i.e., the KPOINTS_OPT_NKBATCH tag. For the explicit list including zero-weighted k points, VASP may exceed the available memory if the number of zero-weighted k points is large. In that case, split the hybrid band-structure calculation into multiple calculations. For each calculation, add part of the zero-weighted k points.
Tip: Make fine sampling computationally feasible using the KPOINTS_OPT_NKBATCH tag or splitting the calculation with part of the zero-weighted k points. |
To understand how the two methods work in practice, try using them with a DFT calculation as if it were a hybrid calculation.
Finally, let us stress a major difference in hybrid band-structure calculations and DFT band-structure calculations. For density functionals, the electronic charge density suffices to define the Hamiltonian and no regular k mesh is required during DFT band-structure calculations. If no regular k mesh is provided, the electronic charge density must be fixed during the DFT band-structure calculation by setting ICHARG=11 in the INCAR file.
Warning: The electronic charge density must not be fixed for any hybrid calculation, i.e., never set ICHARG=11! |
Example of k points for hybrid band-structure calculation
For instance, for cubic-diamond Si with the following POSCAR file
cd Si 5.5 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0 Si 2 Fractional -0.125 -0.125 -0.125 0.125 0.125 0.125
we can generate a regular k mesh using the following KPOINTS file
Regular k-points mesh 0 Monkhorst-Pack method 3 3 3 0 0 0
The resulting IBZKPT file contains the following lines:
Automatically generated mesh 4 Reciprocal lattice 0.00000000000000 0.00000000000000 0.00000000000000 1 0.33333333333334 0.00000000000000 -0.00000000000000 8 0.33333333333334 0.33333333333334 -0.00000000000000 6 -0.33333333333334 0.33333333333334 0.00000000000000 12
For the explicit k-points list, copy the regular k mesh from the IBZKPT file and add, e.g., 5 k points from Γ to X with zero weight:
Explicit k-points list 9 Reciprocal lattice 0.00000000000000 0.00000000000000 0.00000000000000 1 0.33333333333334 0.00000000000000 -0.00000000000000 8 0.33333333333334 0.33333333333334 -0.00000000000000 6 -0.33333333333334 0.33333333333334 0.00000000000000 12 0.00000000 0.00000000 0.00000000 0 0.12500000 0.00000000 0.12500000 0 0.25000000 0.00000000 0.25000000 0 0.37500000 0.00000000 0.37500000 0 0.50000000 0.00000000 0.50000000 0
For the KPOINTS_OPT method, the same path from Γ to X can be specified by creating the following KPOINTS_OPT file
k points for band structure 5 ! intersections line-mode Fractional 0.0000000000 0.0000000000 0.0000000000 Γ 0.5000000000 0.0000000000 0.5000000000 X
And continue using the following KPOINTS file
Regular k-points mesh 0 Monkhorst-Pack method 3 3 3 0 0 0
Related tags and articles
KPOINTS, KPOINTS_OPT, Hybrid functionals