Jump to content

Requests for technical support from the VASP team should be posted in the VASP Forum.

Band-structure calculation using hybrid functionals

From VASP Wiki
Revision as of 14:33, 10 May 2022 by Huebsch (talk | contribs)

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 to 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 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. 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.

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.

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 significant difference between hybrid band-structure calculations and DFT band-structure calculations. The electronic charge density suffices for density functionals to define the Hamiltonian, and no regular k mesh is required during DFT band-structure calculations. However, 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.

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

References