WAVEDER
The WAVEDER file contains the derivative of the Kohn-Sham orbitals with respect to the Bloch vector k, written in units of [math]\displaystyle{ \AA }[/math]. More precisely, it contains the following matrix
- [math]\displaystyle{ \braket{\tilde u_{n'\mathbf{k}s} | \tilde u_{n\mathbf{k}+k_i s} }= \langle \tilde\psi_{n'\mathbf k s} |{\bf S} | \frac{\partial \tilde\psi_{n\mathbf k s}}{\partial k_i}\rangle = \frac{1}{\epsilon_{n\mathbf k s} -\epsilon_{n'\mathbf k s}} \langle \tilde\psi_{n'\mathbf k s} | \frac{\partial (\mathbf{ H} - \epsilon_{n\mathbf k s} \mathbf{S})}{\partial k_i} | \tilde\psi_{n\mathbf k s} \rangle. }[/math],
where [math]\displaystyle{ \ket{\tilde u_{n\mathbf{k}s}} }[/math] is the cell periodic part of the pseudo-wave function, [math]\displaystyle{ \ket{\tilde\psi_{n\mathbf k s}} }[/math].
These matrix elements correspond to the dipole moment between the states [math]\displaystyle{ \tilde\psi_{n'\mathbf k s} }[/math] and [math]\displaystyle{ \tilde\psi_{n\mathbf k s} }[/math], which are important in the context of dielectric properties. They serve as input for GW and Bethe-Salpeter calculations, as well as the time-evolution algorithm.
In the case of degenerate states, the matrix elements are set to zero, within numerical accuracy.
The WAVEDER file is written when LOPTICS = True is set in the INCAR file.
Important: Please note that only the matrix elements where [math]\displaystyle{ n }[/math] or [math]\displaystyle{ n' }[/math] correspond to a pair of an occupied and an unoccupied state are calculated and written to the WAVEDER file. Matrix elements involving both occupied or both unoccupied states are not computed. |
To include more empty states in the calculation, set the NBANDS tag in the INCAR file to a larger value with respect to the default. The default value of NBANDS can be obtained with a VASP a dry run. Setting NBANDS is generally recommended for LOPTICS = True , since the dielectric function is computed using a summation over empty states (see the page for LOPTICS for more information).
Format
The header of the WAVEDER file contains the following information:
- Total number of bands (NBANDS), number of bands used in evaluation of matrix elements, number of k-points, number of spin channels (1 for unpolarised calculations, 2 for polarised or non-collinear calculations).
- Frequency node of the real part of the dielectric function, i.e. the solution for [math]\displaystyle{ \Re[\epsilon(\omega)] = 0 }[/math].
- Plasmon frequency.
They are then followed by the matrix elements [math]\displaystyle{ \braket{\tilde\psi_{n'\mathbf k s} |{\bf S} | \frac{\partial \tilde\psi_{n\mathbf k s}}{\partial k_i}} }[/math]. This is stored in an five-indexed array, with the indices' order being [math]\displaystyle{ (n',n,\mathbf k, s, i) }[/math], where [math]\displaystyle{ s }[/math] stands for the spin channel and [math]\displaystyle{ i=1,2,3 }[/math] for the cartesian direction. The maximum value of each index is defined in the file header, as mentioned above.
Usage
If the WAVEDER file is read successfully, it can be used as a starting point in the following types of calculations:
The information on the number of bands, k-points, and spin channels is used by VASP in subsequent calculations to check for compatibility between runs. If these parameters are different between different runs, the matrix elements inside the WAVEDER file are not read. A warning will then be printed to the standard output reporting that the WAVEDER file is incompatible with the present calculation and advising to run the previous step (i.e., the calculation where LOPTICS = TRUE ).
Information on the frequency node of the real part of the dielectric function is used in defining the frequency grid for GW calculations and the time-evolution algorithm, while the plasmon frequency is used for computing the Drude-term contribution to the dielectric function. This term used in GW calculations to include the intra-band contribution to the dielectric function.
Related tags and sections
LOPTICS, GW calculations, BSE calculations, Time-evolution algorithm